Jaka jest różnica między [email protected]
i $!
w Perlu? Błędy związane z eval
są wyprowadzane przy użyciu [email protected]
. $!
służy również do przechwytywania błędu. Jaka jest różnica między nimi?
Odpowiedz
Od perldoc perlvar:
Zmienne
[email protected]
,$!
,$^E
i$?
zawierające informacje o różnych typach warunków o błędach, które mogą pojawić się w trakcie realizacji programu Perl. Zmienne są uporządkowane według "odległości" pomiędzy podsystemem, który zgłosił błąd, a procesem Perla. Odpowiadają one błędom wykrytym przez interpreter Perla, bibliotekę C, system operacyjny lub program zewnętrzny.
$!
jest ustawiany, gdy nie powiodło się wywołanie systemowe.
open my $fh, '<', '/foobarbaz' or die $!
To spowoduje wyświetlenie "Brak takiego pliku lub katalogu".
[email protected]
zawiera argument, który został przekazany do die
. Dlatego:
eval {
open my $fh, '<', '/foobarbaz' or die $!
};
if ([email protected]) {
warn "Caught exception: [email protected]";
}
To nie ma sensu, by sprawdzić [email protected]
bez użycia jakiejś formy eval
a nie sens, aby sprawdzić $!
kiedy nie nazwali funkcji, które można ustawić go w przypadku wystąpienia błędu.
- 1. różnica między ./test.pl i Perl test.pl
- 2. Różnica w szyfrowaniu blowfish między perl i ruby
- 3. Perl Tkx, Jaka jest różnica między "button" i "ttk__button"?
- 4. Jaka jest różnica między modułami Perl autodie i Fatal?
- 5. Różnica pomiędzy() i [] w Perl 6
- 6. Różnica między "i" w Lua
- 7. Jakie są różnice między Vanilla Perl i Strawberry Perl?
- 8. MySQL: Różnica między ",", "i"
- 9. Composer.phar różnica między | i ||
- 10. Różnica między | = i^= css
- 11. Różnica między "% ~ dp0" i ". \"?
- 12. Różnica między ". +" I ". +?"
- 13. Różnica między unwrapObservable i()
- 14. Różnica między "**/* /" i "** /"?
- 15. Różnica między (++ i) oraz (i ++)
- 16. Różnica między blokiem i funkcji w zakresie określania zakresu w Perl
- 17. Perl XS i Inline :: C
- 18. Jaka jest różnica między grep i mapą w Perlu?
- 19. Różnica kręgosłupa Różnica między CompositeView i CollectionView?
- 20. Różnica między org.apache.spark.ml.classification i org.apache.spark.mllib.classification
- 21. Różnica między fgets i fscanf?
- 22. Różnica między PyMODINIT_FUNC i PyModule_Create
- 23. Różnica między ParameterInfo.DefaultValue i ParameterInfo.RawDefaultValue
- 24. Różnica między DatagramSocket i DatagramChannel
- 25. różnica między Html.BeginForm() i ajax.beginform()
- 26. Różnica między IE8 i EmulateIE8
- 27. różnica między com.sun.jna i net.java.dev.jna?
- 28. Różnica między $ .getScript() i $ .get()
- 29. różnica między -lgcc_s i gcc
- 30. Różnica między sw600dp i w600dp?