Пару раз я сталкивался с ситуацией, когда я забыл загрузить модуль Try::Tiny
в свой скрипт и все еще использовал его блок try-catch
, например:
#!/usr/bin/env perl
use strict;
use warnings;
try {
call_a( 'x' );
} catch {
die "ACTUALLY die $_";
};
sub call_a {
die "Yes, I will";
}
По какой-то причине скрипт работает нормально, без намеков на то, что его нет try
. Нет ошибок Undefined subroutine
. Это заставляет меня задуматься, почему мои повышенные исключения не обнаружены.
Почему это работает тихо, без ошибок?
EDIT
Я также посмотрел в таблицу символов:
say "$_: %main::{ $_ }" for keys %main::;
и не нашел там try
. Также я попытался назвать его как main::try
в приведенном выше скрипте, и это также не вызвало ошибок.