Latest web development tutorials

la gestione degli errori Perl

Il programma è in esecuzione, incontra sempre una serie di errori, come l'apertura di un file che non esiste.

Il programma è in esecuzione si arresta se si verifica un errore, abbiamo bisogno di utilizzare alcuni metodi per evitare errori di rilevamento, impedendo così il programma viene chiuso.

Perl fornisce un errore di multi-processing fatta nel metodo, allora abbiamo introdotto uno per uno.


if

se l'istruzione in grado di determinare il valore di ritorno della dichiarazione, gli esempi sono i seguenti:

if(open(DATA, $file)){
   ...
}else{
   die "Error: 无法打开文件 - $!";
}

Programma variabile $! Restituito un messaggio di errore. Possiamo anche semplificare il codice qui sopra per il seguente codice:

open(DATA, $file) || die "Error: 无法打开文件 - $!";

a meno che la funzione

salvo funzione e se al contrario, solo quando l'espressione restituisce false sarà attuato come segue:

unless(chdir("/etc")){
   die "Error: 无法打开目录 - $!";
}

a meno che la dichiarazione in cui si desidera impostare un promemoria errore è molto utile.Quello che posso anche essere abbreviato come il codice di cui sopra:

die "Error: 无法打开目录!: $!" unless(chdir("/etc"));

Il messaggio di errore solo quando le circostanze cambieranno output di errore di directory.


operatore ternario

Quanto segue è un semplice esempio di un operatore ternario:

print(exists($hash{value}) ? '存在' : '不存在',"\n");

Gli esempi sopra riportati che usiamo l'operatore ternario per determinare esiste il valore hash.

Esempi includono l'espressione di due valori, il formatoè :? Un valore dell'espressione: Valore II.


funzione di mettere in guardia

funzione di mettere in guardia è utilizzato per attivare un messaggio di avviso, nessun altra operazione, l'output STDERR (file di output standard), di solito utilizzato per richiedere all'utente:

chdir('/etc') or warn "无法切换目录";

la funzione die

funzione dado è simile ad avvertire, ma sarà un'uscita. Di solito con i messaggi di errore ad alta voce di uscita del rumore:

chdir('/etc') or die "无法切换目录";

modulo Carp

In script Perl, metodo comunemente usato è quello di utilizzare il rapporto di errore avverte () or die () per generare report o di errore. Per il modulo carpa, che può generare messaggi per fornire ulteriori livelli di controllo, in particolare all'interno del modulo.

modulo Carp standard fornisce un warn () e muoiono () è un'alternativa, che forniscono ulteriori informazioni per la fornitura di posizionamento sbagliato, e più amichevole. Quando viene utilizzato in un modulo, il messaggio di errore contiene il nome del modulo e il numero di linea.

funzione di carpe

funzione di carpa può uscita monitoraggio delle informazioni sul programma, simile per mettere in guardia la funzione normalmente inviare le informazioni a STDERR:

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   carp "Error in module!";
}
1;

Nello script chiama la seguente procedura:

use T;
function();

Il programma precedente, l'uscita è:

Error in module! at test.pl line 4

funzione cluck

cluck () e mettere in guardia () è simile, a condizione che l'errore al camino posteriore traccia.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp qw(cluck);

sub function {
   cluck "Error in module!";
}
1;

Nello script chiama la seguente procedura:

use T;
function();

Il programma precedente, l'uscita è:

Error in module! at T.pm line 9
	T::function() called at test.pl line 4

funzione gracidio

gracchiare () e muoiono (), come si può finire script.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   croak "Error in module!";
}
1;

Nello script chiama la seguente procedura:

use T;
function();

Il programma precedente, l'uscita è:

Error in module! at test.pl line 4

funzione di confessare

confessare () e muoiono () è simile, ma offre l'errore di stack posteriore traccia.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   confess "Error in module!";
}
1;

Nello script chiama la seguente procedura:

use T;
function();

Il programma precedente, l'uscita è:

Error in module! at T.pm line 9
	T::function() called at test.pl line 4