Comment un script Perl détecter si elle est en cours d'exécution dans le Komodo IDE?

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

  •  19-09-2019
  •  | 
  •  

Question

Une façon j'ai trouvé est de vérifier si le Débogueur Perl est « chargé » en vérifiant défini ($ DB :: single) et en supposant Komodo est actif, si $ DB :: single est défini ..

Mais cela pourrait aussi signifier que le script est en cours d'exécution légitimement comme perl -d sous le débogueur "autonome".

#!/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 suggestion conduit à:

if ( grep( /.*Komodo\ IDE\.app/g,  values %INC) ){
    say "Komodo is running"
} else {
   say "Komodo is not running"
};

Mais est-il une autre façon?


routine UPDATE aujourd'hui mon isKomodo () a échoué. Certaines enquête a montré, que cela a changé mes paramètres de chemin global de « long » à des noms « courts » (ce qui est sous Windows) .. il y a nolonger une chaîne « Komodo » dans le répertoire% INC hachage ..

Je cherche un remplaçant.

Était-ce utile?

La solution

Qu'est-ce que votre% INC contient lorsque vous lancez le script sous Komodo? Il y a une bonne chance que certains modules spécifiques Komodo sont chargés. Il est préférable d'imprimer son contenu avec:

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

Autres conseils

On dirait que quelque chose comme cela est plus facile (pour le script de savoir qu'il est en cours d'exécution sous 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"
}

Mise à jour (par « Lexu): Komodo (7) place maintenant KOMODO_VERSION dans l'environnement

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top