Из-под отладчика
Nov. 19th, 2014 07:45 amВ перловых скриптах (во всяком случае, в тех, что запущены в юниксоподобных системах) определить, запущены ли они из-под отладчика, достаточно просто — надо проверить, существует ли переменная окружения
Однако в отладчике, встроенном в Komodo IDE 8.5, такой способ не работает — вместо
http://shoorick.ru/2014/11/19/how-to-detect-perl-debugger/
upd/20.11.2014: Всё проще — существует переменная
PERLDB_PIDS:my $DEBUG = exists $ENV{'PERLDB_PIDS'};Однако в отладчике, встроенном в Komodo IDE 8.5, такой способ не работает — вместо
PERLDB_PIDS устанавливается другая переменная PERL5DB со значением, например, BEGIN require '/opt/komodo/lib/support/dbgp/perllib/perl5db.pl' . А в штатном отладчике переменной PERL5DB нет. Значит, надо проверять обе:my $DEBUG
= exists $ENV{'PERLDB_PIDS'}
|| exists $ENV{'PERL5DB'};http://shoorick.ru/2014/11/19/how-to-detect-perl-debugger/
upd/20.11.2014: Всё проще — существует переменная
$^P
no subject
Date: 2014-11-19 12:51 pm (UTC)Т.е. просто: if ($^P) { # DEBUGGER DETECTED!
P.S. А как это у тебя переменные окружения попадают в глобальные переменные? Модуль Env поди подключаешь? Потому как иначе переменные окружения видны как элементы глобального хэша %ENV.
P. S. Не попадают
Date: 2014-11-20 08:32 am (UTC)%ENVсидят, никуда не ходят. Просто я их написал так, коротко.Ой
Date: 2014-11-20 08:37 am (UTC)Надо бы man perlvar перечитать...