Forum Webscript.Ru

Программирование => Perl => Тема начата: от 27 Октября 2001, 11:25:59

Название: Ммм...Кто смжет обьяснить глупому..:)
Отправлено: от 27 Октября 2001, 11:25:59
Что ет такое и что оно делает.. ? :))

------
$SIG{__WARN__}
------

Взято ет из Yabb...хочется узнать бы об етом побольше...
Название: %SIG - спец. хэш обработчиков
Отправлено: Green Kakadu от 28 Октября 2001, 14:49:12
$SIG{__WARN__} = sub { &fatal_error( @_ ); };

;) все, кранты серверу!

А если серьзно, то вышеприведенная строка означает, что вывод всех предупреждений об ошибках будет обрабатываться подпрограммой &fatal_error();  т.е. так ,как хочет того разработчик скрипта, а не делает Perl самостоятельно :) довольно цивилизованный способ.
А вот так:
$SIG{__WARN__} = sub {};

Можно отключить вывод предупреждений вообще (т.е. накроется скрипт и никому об этом не скажет)
Название: Ммм...Кто смжет обьяснить глупому..:)
Отправлено: от 28 Октября 2001, 23:49:16
хм...а разве не через =~ ведь делается изменение над ошибкой...
А хотя ошибка присваевается переменной @_...хм..ну дя..:)))

А чего еще есть у %SIG...:)))
Название: Ммм...Кто смжет обьяснить глупому..:)
Отправлено: Green Kakadu от 29 Октября 2001, 00:07:22
Цитировать
ведь делается изменение над ошибкой...

не совсем, делается не изменение над ошибкой - меняется один обработчик вывода ошибок на другой.
Название: Ммм...Кто смжет обьяснить глупому..:)
Отправлено: от 29 Октября 2001, 09:04:23
черт зарегится чтоль..:)
но ведь мона было обработать ошибку...например грепнуть или сделать отбор..тогда мы поставили бы =~ дык почему ща низя..представим что &fatal_error ет что-то типа грепа и вперед..:)