Pregunta

Una forma que he encontrado es para comprobar si el depurador de Perl se "carga" mediante la comprobación de definido ($ DB :: individual) y asumiendo Komodo está activo, si $ DB :: solo se define ..

Pero esto también podría significar la secuencia de comandos se ejecuta legítimamente como perl -d en el depurador "independiente".

#!/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 's sugerencia conduce a:

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

Pero hay otra manera?


Actualizar hoy mi isKomodo () rutina falló. Algunos investigación mostró, que me cambió la configuración de ruta globales de "larga" a los nombres de "cortas" (esto es bajo Windows) .. hay nolonger es una cadena "KOMODO" en el hash% INC ..

Estoy buscando un reemplazo.

¿Fue útil?

Solución

¿Qué contiene el INC% al iniciar la escritura en virtud de Komodo? Hay una buena probabilidad de que algunos módulos de Komodo-específicas se cargan. Es mejor para imprimir su contenido con:

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

Otros consejos

Parece que algo como esto es más fácil (por el guión de saber que se está ejecutando en virtud de 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"
}

UPDATE (por 'Lexu): KOMODO (7) coloca ahora KOMODO_VERSION en el entorno

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top