Pregunta

Ejecuto una prueba de archivo simple en Perl con el siguiente código:

my $f1 = "$pre_file";

 unless (-e $1) {

 print "\n Pre_check file does not exists! \n";

 die;

 } 

Imprime la siguiente salida:

¡El archivo pre_check no existe!
Murió en la línea 81.

Sin embargo, no quiero que la última línea "muriera en ./Huawei-Postcheck Line 81.".

Quiero "morir" sin mensaje de error.

¿Es posible?

¿Fue útil?

Solución

Podrías decir

die "\n";

para suprimir el mensaje.

Otros consejos

Ver la documentación para morir.

Si el último elemento de la lista no termina en una nueva línea, el número de línea de script actual y el número de línea de entrada (si lo hay) también se imprimen, y se suministra una nueva línea.

Para que pueda hacer morir para que funcione sin imprimir nada simplemente usando die "\n". Pero dado que tiene un mensaje de error, no puedo ver por qué no usa eso.

unless (-e $f1) {
  die "\n Pre_check file does not exist!\n";
}

Por supuesto, la diferencia es que el mensaje ahora irá a Stderr en lugar de Stdout. Pero ese es probablemente el lugar correcto para que se vaya.

usar exit en vez de die.

Probablemente quieras exit 1 en lugar de morir entonces.

my $f1 = "$pre_file";

unless (-e $1) {
    print "\n Pre_check file does not exists! \n";
    exit 1;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top