ситуация следующая.
есть участок кода который может по разным причинам долго выполняться.
мне нужно чтобы при выполнение этого участка дольше чем 2 секунды, программа пропускала его и выполнялась дальше.
я сделал это через ALRM и goto
получилось
$SIG{ALRM} = sub {
goto M1;
};
какие то команды;
какие то команды;
alarm(2);
долгий участок кода;
alarm(0);
M1:
какие то команды;
в принципе всё работает но меня терзают сомнения по поводу goto из функции.
это нормальное решение или есть что то более изящное?