私が見つけた 1 つの方法は、$DB::single が定義されている場合、define ($DB::single)をチェックし、Komodo がアクティブであると仮定して、Perl Debugger が「ロード」されているかどうかをチェックすることです。
しかし、これは、スクリプトが「スタンドアロン」デバッガーの下で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"
};
しかし、別の方法はありますか?
UPDATE今日、私の isKomodo() ルーチンが失敗しました。一部の調査では、IT が私のグローバル パス設定を「長い」名前から「短い」名前に変更したことがわかりました (これは Windows の下にあります) ..%INC ハッシュに「KOMODO」文字列がなくなりました..
代わりを探しています。