Domanda

Sto cercando di eseguire una copia dell'interprete Perl usando Runtime.exec di Java (). Tuttavia, ha restituito il codice di errore 9. Dopo aver eseguito il file un paio di volte, l'interprete perl misteriosamente ha iniziato a restituire il codice 253, senza cambiamenti nel mio comando a tutti.

Che cosa significa il codice 253 / code 9? Una ricerca su Google per i codici di uscita perl dell'interprete è giunta a nulla. Dove posso trovare un elenco di codici di uscita per l'interprete Perl?

È stato utile?

Soluzione

perldoc perlrun :

  

Se il programma è sintatticamente corretto, viene eseguito. Se il programma viene eseguito fuori alla fine senza colpire un operatore exit() o die(), un exit(0) implicita è previsto per indicare il completamento con successo.

In questo modo, il programma è in esecuzione deve essere in qualche modo specificando i valori di uscita tramite morire , uscita o equivalente.

Altri suggerimenti

In circostanze normali, perl tornerà qualunque sia il programma viene eseguito rendimenti. Quindi, non si può generalizzare il significato del valore di ritorno senza conoscere il programma è in esecuzione.

Perl stesso non ha codici di uscita definiti; a meno che il crash interprete Perl in un modo davvero orribile, il codice di uscita è determinato dal programma che perl è in esecuzione, non per perl sé.

L'interprete Perl in realtà non i codici di uscita di ritorno del proprio se lo script non viene eseguito. La maggior parte degli errori di sintassi portano ad uscire Codice 9:

funzione Unknown / bareword non consentiti:

perl -e 'use strict; print scalar(localtime); schei;'

$? = 9

divisione per zero:

perl -e 'use strict; print scalar(localtime); my $s = 1/0;'

$? = 9

Errore di sintassi:

perl -e 'use strict; print scalar(localtime); my $ff; $ff(5;'

$? = 9

con dado:

perl -e 'use strict; print scalar(localtime); die "twaeng!"'

$? = 9

un modulo sconosciuto era l'unica situazione che ho trovato perl per uscire in modo diverso:

perl -e 'use strict; use doof; print scalar(localtime);'

$? = 2

A proposito sto ancora alla ricerca di un elenco completo di codici di uscita del interprete Perl me stesso. Chiunque ha ottenuto un'idea dove guardare, a parte le fonti interpreti Perl?

Dal momento che il codice di errore è cambiato dopo alcune piste; se si esegue un'applicazione Java come una webapp in esecuzione continua, controllare se può essere una sorta di perdita di memoria.

È possibile verificare lo script perl di vari problemi eseguendolo con le opzioni -Tw dell'interprete Perl, per le modalità contaminati e avvisi attivati, vedi perlrun per maggiori informazioni su questi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top