我发现的一种方法是通过检查defined($DB::single)并假设 Komodo 处于活动状态,如果定义了 $DB::single 来检查 Perl 调试器是否“加载”。
但这也可能意味着脚本在“独立”调试器下以perl -d的身份合法运行。
#!/usr/local/ActivePerl-5.10/bin/perl
use strict;
use warnings;
use feature qw/say switch/;
# detect debugger ..
SayDebugerStatus();
sub SayDebugerStatus {
print "Debugger ";
given ($DB::single) {
when (undef) {
say "not loaded.";
}
when (0) {
say "loaded but inactive";
}
default {
say "loaded and active";
}
}
return defined($DB::single) ? 1:0;
}
zakovyrya的建议导致:
if ( grep( /.*Komodo\ IDE\.app/g, values %INC) ){
say "Komodo is running"
} else {
say "Komodo is not running"
};
但是还有其他方法吗?
今天更新我的 isKomodo() 例程失败。一些调查表明,IT 将我的全局路径设置从“长”名称更改为“短”名称(这是在 Windows 下).. %INC 哈希中不再有“KOMODO”字符串..
我正在寻找替代品。