|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 11 Dec 2002 17:47:58 To : Alexey Mahotkin Subject : Re: Работа с HTML -------------------------------------------------------------------------------- Здравствуй, Alexey Mahotkin. S>> Хм... а чем собственно local от my отличается??? ONK>> perldoc -f local ONK>> A local modifies the listed variables to be local to the enclosing ONK>> block, file, or eval. ONK>> perldoc -f my ONK>> my `my' declares the listed variables to be local (lexically) to the ONK>> enclosng block, file, or `eval'. S>> если честно, то мне почему-то показалось, что это одно и то S>> же:). Видимо знание аглицкого не позволяет... AM> my -- это объявление новых переменных. AM> local -- это "временно сохранить значение переменной до конца текущего AM> блока". Если ты знаешь ассемблер, то local -- это типа команда push, а в AM> конце блока происходит pop. AM> Hапример. AM> my $x = 1; AM> { AM> local $x = 10; # теперь $x равен 10; старое значение, единица, AM> запомнено AM> $x++; # теперь он равен одиннадцати AM> } # здесь восстанавливается старое значение AM> # здесь $x опять равен единице Ты эта, поаккуратнее примеры приводи. Этот пример с my вместо local будет работать точно так же. Пример, показывающий различие: sub aaa { my $x = 5; ccc() } sub bbb { local $x = 5; ccc() } sub ccc { print "x = '$x'\n" } aaa(); bbb(); ==================================================== x = '' x = '5' ==================================================== -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454c406b34b.html, оценка из 5, голосов 10
|