Frage

Ich versuche, das folgende Stück Code zu verstehen:

sub foo {
    ...
    if ( $@ ) {
        ...
        die $@;
    }
}
War es hilfreich?

Lösung

perldoc -f eval :

  

Wenn es ein Syntaxfehler oder Laufzeit   Fehler oder eine „die“ Aussage   ausgeführt wird, ein undefinierter Wert ist   zurück von „eval“, und $ @ wird auf   die Fehlermeldung. Wenn es keine   Fehler, $ @ ist garantiert eine Null sein   String.

Siehe auch perldoc perlvar .

Andere Tipps

$@ ist eine magische Variable die Fehlermeldung des letzten eval Befehl, falls vorhanden, enthält.

Die if-Schleife durch eval vorangehen sollte es zu stoppen $ @ zu können.

Während ein eval (), $ @ immer bei einem Fehler gesetzt und auf Erfolg gelöscht.

Bei WHR-Code innerhalb eval () hat nicht kompilieren, $ @ wird auf die Übersetzungsfehler gesetzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top