DeWitt: return: "leere" Werte als Rückgabe erlauben

Beitrag lesen

Hallo Self-Forum,

Ich habe folgendes Problem bei einem Perl-Programm:

Eine Subroutine soll aus einer Datei einen Wert auslesen und diesen ans Hauptprogramm zurückgeben. Wenn innerhalb der Subroutine ein Fehler passiert (z.B. Datei kann nicht geöffnet werden), wird die Fehlermeldung in $@ gespeichert und die Subroutine mit 'return 0'; abgebrochen, ansonsten wird am Ende der Subroutine mit 'return $value;' der ausgelesene Wert zurückgegeben
Das Hauptprogramm ruft die Routine wie folgt auf:

  
my $value = $accounts->getValue($id','name') || die $@;  

Das ganze funktioniert auch wunderbar, nur mit einem Haken: Wenn nun der ausgelesene Wert gerade 0 oder auch '' ist, erhalte ich natürlich einen Fehler ("Died at ..."). Kann ich das irgendwie umgehen, d.h. eine Null-Rückgabe entsprechend maskieren?