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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander Kostiuchenko               2:463/672.419  30 May 2005  23:14:23
 To : Maxim Yemelyanov
 Subject : lazy evaluation
 -------------------------------------------------------------------------------- 
 
 
  Как-то раз (а точнее 28 May 05 в 15:54) Maxim Yemelyanov писал(а) к All:
 
  MY> # в этом месте %h не видно
  MY> $expr = 'foo: $h{foo},\nbar: $h{bar}';
  MY> А хотелось бы определять все $expr в области данных модуля и
 
 Hе совсем понятно, где ты в Perl нашел область данных. __DATA__ ? ;-)
 
  MY> использовать далее в коде, где все используемые переменные уже в
  MY> области видимости. Как сделать?
 
 Можно несколько упростить задачу. Возможно, подойдет такой вариант:
 
 {
  package LazyStr;
  use overload '""' => sub { shift->() };
  sub new { bless pop }
 }
 
 my $z;
 
 my $expr = new LazyStr sub { "z: $z\nX::data: $X::data" };
 
 {
  package X;
  our $data = 777;
 }
 
 $z = 55;
 
 print $expr;
 
 В принципе можно сделать дословно именно то, что ты описываешь. Hо это гораздо, 
 гораздо заморочней...
 --
 mailto: random at binet.kiev.ua                  //Александр
 
 ---
  * Origin: useless (2:463/672.419)
 
 

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

 Тема:    Автор:    Дата:  
 lazy evaluation   Maxim Yemelyanov   28 May 2005 12:54:33 
 lazy evaluation   Serg Chervjakov   28 May 2005 13:56:02 
 Re: lazy evaluation   Maxim Yemelyanov   28 May 2005 14:12:08 
 lazy evaluation   Alexander Kostiuchenko   30 May 2005 23:14:23 
Архивное /ru.perl/4029429c12ea.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional