Latest web development tutorials

manipulação de erro Perl

O programa está sendo executado, sempre encontrar uma variedade de erros, como abrir um arquivo que não existe.

O programa está sendo executado pára se ocorrer um erro, precisamos usar alguns métodos para evitar a detecção de erros, evitando assim o programa sai.

Perl fornece um erro de multi-processamento feito no método, então introduzidos um a um.


if

se a declaração pode determinar o valor de retorno da declaração, os exemplos são os seguintes:

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

Programa $ variable! Obtivemos uma mensagem de erro. Nós também pode simplificar o código acima para o seguinte código:

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

a menos que a função

a menos que a função e se o contrário, somente quando a expressão retorna false será implementado da seguinte forma:

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

a menos que a declaração quando você deseja definir um erro de lembrete é muito útil.O que também pode ser abreviado como o código acima:

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

A mensagem de erro acima somente quando as circunstâncias vão mudar saída de erro diretório.


operador ternário

O que se segue é um exemplo simples de um operador ternário:

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

Os exemplos acima usamos o operador ternário para determinar o valor existir hash.

Exemplos incluída uma expressão de dois valores, o formatoé :? Um valor da expressão: Value II.


função de advertir

função de advertir é usado para disparar uma mensagem de aviso, nenhuma outra operação, a saída para STDERR (arquivo de saída padrão), geralmente utilizado para solicitar ao usuário:

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

função die

função die é semelhante para avisar, mas vai ser uma saída. Geralmente com mensagens de erro de saída de ruído alto:

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

módulo Carp

No script Perl, método comumente usado é usar o relatório de erros warn () ou morrer () função para gerar relatórios ou erro. Para o módulo Carp, que pode gerar mensagens para fornecer níveis adicionais de controle, especialmente dentro do módulo.

módulo Carp norma fornece um warn () e morrer () função é uma alternativa, eles fornecem mais informações na prestação de posicionamento errado, e mais amigável. Quando utilizado num módulo, a mensagem de erro contém o nome do módulo e número de linha.

função de carpa

função carpa pode saída de rastreamento de informações sobre o programa, similar para avisar função normalmente enviar as informações para STDERR:

package T;

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

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

No script chama o procedimento a seguir:

use T;
function();

O programa acima, a saída é:

Error in module! at test.pl line 4

função cluck

cluck () e warn () é semelhante, desde o erro no rastreamento regressivo da pilha.

package T;

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

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

No script chama o procedimento a seguir:

use T;
function();

O programa acima, a saída é:

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

função coaxar

coaxar () e morrer (), como pode terminar script.

package T;

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

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

No script chama o procedimento a seguir:

use T;
function();

O programa acima, a saída é:

Error in module! at test.pl line 4

função confessares

confess () e die () é semelhante, mas oferece a partir do erro de rastreamento regressivo da pilha.

package T;

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

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

No script chama o procedimento a seguir:

use T;
function();

O programa acima, a saída é:

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