|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : yurik shestakov 2:5020/400 08 Jun 2004 17:19:37 To : Alexander Kostiuchenko Subject : Re: name from reference -------------------------------------------------------------------------------- On Tue, Jun 08, 2004 at 08:50:05AM +0400, Alexander Kostiuchenko wrote: ys>> Может чего-то очень странного хочется? AK> Связывать переменные с внешними сущностям с такими же именами - разве AK> это так уж странно ? А my $name : ext('$name') выглядит как-то AK> неэстетично (обычный в таких случаях tie - еще хуже)... AK> Была мысль вместо аттрибутов писать ext { my $a; my @b; ... } (реализация AK> примерно следующая: AK> sub ext(&) { # use PadWalker AK> my $vars = peek_sub( $_[0] ); my $pad = peek_my(1); AK> ${$pad->{$_}} = ext("$_") for grep {/^$/} keys %$vars; # for scalars AK> ... # for other types AK> } Чего-то я не уловил сути в данной реализации, особенно две вещи: 1) grep {/^$/} keys %$vars -- ты чего тут хочешь получить? 2) не понятно, что сделает ext("$_"). AK> Оказалось - PadWalker не умеет создавать переменные caller'a, только AK> модифицировать. Да и strict пришлось бы отключать... IMHO без грубого вмешательства во внутренности Perl такое не провернуть. AK> Более-менее подходит вариант с local our $name. Хотя это не совсем то - AK> из-за "побочного эффекта" с dynamical scoping. Так что вопрос все еще AK> в силе. p.s. Что-то у меня такое чувство, что без tie тут не обойтись. AK> -- AK> mailto: random at binet.kiev.ua //Александр -- // Wfx[HP] --- ifmail v.2.15dev5.3 * Origin: Unknown (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1006980d8b3e8.html, оценка из 5, голосов 10
|