كيف يمكن لكي اكتشاف البرنامج النصي بيرل إذا كان يعمل داخل Komodo IDE؟

StackOverflow https://stackoverflow.com/questions/1195175

  •  19-09-2019
  •  | 
  •  

سؤال

إحدى الطرق التي وجدتها هي التحقق مما إذا كان مصحح الأخطاء بيرل "محملة" عن طريق التحقق من أجل محددة ($ db :: واحد) والافتراض على أن Komodo نشط، إذا تم تعريف DB $ DB:

ولكن هذا قد يعني أيضا أن البرنامج النصي يعمل بشكل مشروع البيرل - تحت مصحح الأخطاء "المستقل".

#!/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 (). وأظهر بعض التحقيقات، أنه غير إعدادات المسار العالمي من الأسماء "الطويلة" إلى "القصير" (هذا تحت Windows) .. هناك Nolonger هو سلسلة "Komodo" في٪ Inc Hash ..

أنا أبحث عن بديل.

هل كانت مفيدة؟

المحلول

ما يحتوي٪ INC الخاص بك عند تشغيل البرنامج النصي تحت Komodo؟ هناك فرصة جيدة يتم تحميل بعض الوحدات الخاصة ب Komodo. من الأفضل طباعة محتواها مع:

use Data::Dumper;
print Dumper \%INC;

نصائح أخرى

يبدو وكأنه شيء من هذا القبيل أسهل (للنصي لمعرفة أنه يعمل تحت Komodo):

use Modern::Perl;
if (exists $ENV{'KOMODO_VERSION'}) {
   say "Script is running under Komodo $ENV{'KOMODO_VERSION'} !";
} else {
   say "script is not running in Komodo"
}

تحديث (بواسطة 'Lexu): Komodo (7) الآن أماكن Komodo_version في البيئة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top