Qual è la differenza tra [email protected]
e $!
in Perl? Gli errori associati a eval
vengono emessi utilizzando [email protected]
. $!
viene anche utilizzato per acquisire l'errore. Allora qual è la differenza tra entrambi?
risposta
Da perldoc perlvar:
Le variabili
[email protected]
,$!
,$^E
e$?
contengono informazioni sui diversi tipi di condizioni di errore che possono essere visualizzati durante l'esecuzione di un programma Perl. Le variabili sono mostrate ordinate dalla "distanza" tra il sottosistema che ha segnalato l'errore e il processo Perl. Corrispondono agli errori rilevati dall'interprete Perl, dalla libreria C, dal sistema operativo o da un programma esterno, rispettivamente.
$!
viene impostato quando una chiamata di sistema non riesce.
open my $fh, '<', '/foobarbaz' or die $!
Questo morirà in uscita "Nessun file o directory".
[email protected]
contiene l'argomento passato a die
. Pertanto:
eval {
open my $fh, '<', '/foobarbaz' or die $!
};
if ([email protected]) {
warn "Caught exception: [email protected]";
}
E non hanno alcun senso per verificare [email protected]
senza utilizzare una qualche forma di eval
e non ha senso controllare $!
quando non hai chiamato una funzione che può impostarla nel caso di un errore.
- 1. differenza tra ./test.pl e perl test.pl
- 2. In Perl, qual è la differenza tra un file .pm (Perl module) e .pl (Perl script)?
- 3. Differenza tra printf, print e sprintf in Perl?
- 4. Qual è la differenza tra BAREWORD e * BAREWORD in Perl?
- 5. Qual è la differenza tra open e sysopen in Perl?
- 6. Qual è la differenza tra 'eq' e '= ~' in Perl?
- 7. Differenza tra & la funzione e la funzione() in Perl
- 8. differenza tra l'hash di perl e il dizionario di python
- 9. Perl Tkx, qual è la differenza tra "pulsante" e "ttk__button"?
- 10. Differenza tra `% in%` e `` ==
- 11. Durante lo scripting, qual è la differenza tra #!/Usr/bin/perl e #!/Usr/bin/env perl?
- 12. Round robin di base in Perl differenza tra (++/+1)
- 13. Differenza tra "" e "" in Python
- 14. Differenza tra. e: in Lua
- 15. Differenza tra. e #
- 16. Differenza tra "o" e "||"
- 17. MySQL: Differenza tra ",", "e"
- 18. Differenza tra "e" e && in Ruby?
- 19. Differenza tra oggetto e *?
- 20. Differenza tra ". +" E ". +?"
- 21. Differenza tra | = e^= css
- 22. CMake: differenza tra $ {} e "$ {}"
- 23. La differenza tra $ * e $ @
- 24. Differenza tra un blocco e una funzione in termini di scoping in Perl
- 25. Differenza tra $ # e $ {# @}
- 26. Differenza tra unwrapObservable e()
- 27. Differenza tra "**/* /" e "** /"?
- 28. Differenza tra jquery e $
- 29. VBA: Differenza tra & e +
- 30. Differenza tra numpy.logical_and e &