Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander Kostiuchenko               2:463/672.419  08 Jun 2004  09:50:05
 To : yurik shestakov
 Subject : name from reference
 -------------------------------------------------------------------------------- 
 
 
  Как-то раз (а точнее 08 Jun 04 в 11:13) yurik shestakov писал(а) к Alexander
 Kostiuchenko:
 
  AK>> Дано: ссылка на лексическую переменную. Hужно: узнать имя этой
  AK>> переменной (конкретно в моем случае происходит присваивание
  AK>> аттрибута переменной и имя необходимо в обработчике присваивания).
  ys> Имя lexical scope-переменной не содержится в таблице имен, afair.
 
 Да, есть такая лажа. Hо мне этого и не нужно.
 
  ys> Может чего-то очень странного хочется?
 
 Связывать переменные с внешними сущностям с такими же именами - разве это так уж
 странно ? А my $name : ext('$name') выглядит как-то неэстетично (обычный в таких
 случаях tie - еще хуже)...
 
 Была мысль вместо аттрибутов писать ext { my $a; my @b; ... } (реализация
 примерно следующая:
 sub ext(&) { # use PadWalker
  my $vars = peek_sub( $_[0] ); my $pad = peek_my(1);
  ${$pad->{$_}} = ext("$_") for grep {/^$/} keys %$vars; # for scalars
  ... # for other types
 }
 
 Оказалось - PadWalker не умеет создавать переменные caller'a, только
 модифицировать. Да и strict пришлось бы отключать...
 
 Более-менее подходит вариант с local our $name. Хотя это не совсем то - из-за
 "побочного эффекта" с dynamical scoping. Так что вопрос все еще в силе.
 
 --
 mailto: random at binet.kiev.ua                  //Александр
 
 ---
  * Origin: useless (2:463/672.419)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 name from reference   Alexander Kostiuchenko   08 Jun 2004 01:04:07 
 Re: name from reference   yurik shestakov   08 Jun 2004 11:13:42 
 name from reference   Alexander Kostiuchenko   08 Jun 2004 09:50:05 
 Re: name from reference   yurik shestakov   08 Jun 2004 17:19:37 
 name from reference   Alexander Kostiuchenko   08 Jun 2004 15:53:47 
 Re: name from reference   yurik shestakov   09 Jun 2004 17:23:49 
 name from reference   Alexander Kostiuchenko   10 Jun 2004 00:42:16 
 Re: name from reference   yurik shestakov   10 Jun 2004 11:29:20 
 Re: name from reference   Andrew Alakozow   08 Jun 2004 13:37:34 
Архивное /ru.perl/402940c59d1f.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional