|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Paul Kulchenko 2:5020/400 20 Apr 2000 19:44:28 To : All Subject : Re: mod_perl -------------------------------------------------------------------------------- Hi, Dmitriy! Dmitriy Goldobin wrote in message <8dm71r$i5c$1@www.office.ems.chel.su>... >> > Возможно все и так в курсе, но я только сегодня нарвался и >> > хочу других предупредить. Вот так: >> > my $x; >> > print $x; >> > BEGIN {$x="OK";} >> > делать в mod_perl нельзя. Оно на первый взгляд работает, но... не всегда :) Во-первых, это зависит от того, какого же результата ты хотел добиться. Тогда можно и говорить, правильно или нет. Работает оно всегда. Во-вторых, так делать бесмысленно (если только это не является частью инициализации класса или модуля) не только в mod_, но и в обычном Perl. Можно попробовать: sub a { my $x = 20; sub plus {$x++; print "p $x\n";} print "a $x\n"; } plus; a; plus; a; Результаты весьма интересные. Потом прочитать perldoc perlsub про Persistent Private Variables, помня при этом, что BEGIN и END это декларации функций, и ведут себя они соответственно. >> А что происходит? >Hа цатой попытке эта переменная оказывается неопределенной. Hа второй. >Такое ощущение, что my $x; начинает интерпретироваться как my $x=undef; my $x и my $x = undef дают один и тот же результат. После my $x значение $x не определено. Best wishes, Paul. --- ifmail v.2.15dev4 * Origin: Gamma NNTP server Moscow Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/759133ba1856.html, оценка из 5, голосов 10
|