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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Nick Kostirya                        2:5020/400     04 May 2004  11:30:30
 To : All
 Subject : Carp или как я провел праздники.
 -------------------------------------------------------------------------------- 
 
 Решил поделиться поучительным примером,
 под названием "Carp или как я провел праздники".
 :-).
 История со счастливым концом.
 
 Сегодня утром решил поиграться немного с функциональным стилем и
 исключениями, и был шокирован поведением модуля Carp.
 Hе веря своим глазам, для проверки увиденного навалял вот такой файлик:
 === начало===
 use Carp qw(carp cluck);
 
 main();
 
 sub main {
         foo();
 }
 
 sub foo {
         warn "It's warn";
         carp "It's carp";
         cluck "It's cluck"
 }
 
 === конец ===
 
 При запуске получаю
 
 It's warn at 1.pl line 10.
 It's carp at 1.pl line 11
         main::foo() called at 1.pl line 6
         main::main() called at 1.pl line 3
 It's cluck at 1.pl line 12
         main::foo() called at 1.pl line 6
         main::main() called at 1.pl line 3
 
 Долго думал: с каких это пор carp ведет себя как cluck?
 Hеужели я ковырялся в модуля Carp у себя на машине?
 Запускаю под другой версией перла: результат тот же!
 Ошалело запускаю под Линухом - тоже!!!
 Hа другом сервере.... Я в панике :-)
 Всю жизнь работало же... Как же так?!
 Проверяю первый попавшийся свой код, использующий Carp - работает :-)
 
 И тут осеняет, что везде carp использую в пакетах!
 
 Бегом делаю
 === начало===
 main();
 
 sub main {
         Foo::foo();
 }
 package Foo;
 use Carp qw(carp cluck);
 
 sub foo {
         warn "It's warn";
         carp "It's carp";
         cluck "It's cluck"
 }
 
 1;
 === конец ===
 
 Мир вернулся на свое место!!!
 Хотя, странно, почему автор модуля не предусмотрел использование Carp из
 main?
 Может кто-то знает?
 Вот такая история.
 
 Nick.
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Carp или как я провел праздники.   Nick Kostirya   04 May 2004 11:30:30 
Архивное /ru.perl/65774cc1fe37.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional