|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Orlovsky 2:5020/400 15 Jul 2003 10:15:27 To : All Subject : Вопросы по Camelbook --------------------------------------------------------------------------------
Вот решил прочитать таки Camelbook полностью с начала, не обходя непонятные
вещи.
Соответственно вопросы есть. Думаю, спрашиваю в правильном месте.
Итак, сегодняшняя "порция" ;)
1) стр 273, "прототипы"
пользовательская функция try:
sub try(&$){ # <----(*)
my ($try, $catch) = @_;
eval { &$try };
if ($@) {
local $_ = $@; # <---(**)
&$catch;
}
}
Вопросы:
a.(*) прототип для параметров функции &$ что означает ссылку или анонимную
подпрограмму, тем не менее из @_ берется 2 таких ссылки (анонимнык подпрограммы)
Hо ведь в описании только одна указана? (см (*))
b.(**) Тут даже не вопрос, а уточнение. В строке (**) делается локальная копия
глобальной переменной $@ чтобы после отработки catch было доступно ее старое
значение.
2 стр 275.
упоминается, что при разных прототипах:
sub func { } и sub func() { }
функция func() имеет "разную семантику вызова" и что "надо быть осторожным" с
этим.
Что под этим подразумевается? Просто, я не вижу проблемы, т.к. в первом случае
функции просто передаются аргументы, а во втором нет. А семантика вызова тут при
чем? Можно проиллюстрировать?
--- ifmail v.2.15dev5
* Origin: Ye 'Ol Disorganized NNTPCache groupie (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/208009c44461.html, оценка из 5, голосов 10
|