Christian Kruse: Subroutine return true / false?

Beitrag lesen

你好 Chrisi,

Mein Problem ist das in Strict kein ture oder false erlaubt ist. Ich möchte nur ungern den ganzen Code mit return 0 / return 1 vollstopfen und bei allen if Abragen die Rückgabe auf 0 / 1 pruefen.

Kann mir jemand sagen wie man es sauber und richtig anstellt?

In Perl ist undef, '', '0', 0, 0.0 und () unwahr, der Rest ist wahr. Das heißt: wenn du auf wahr prüfen willst, gib einen Wert ungleich der oben genannten zurück, ansonsten undef. Z. B. so:

  
sub check_me() {  
  return;  
}  
  
sub check_me_true() {  
  return 1;  
}  
  
print "Cannot happen!\n" if check_me();  
print "Must happen!\n" if check_me_true();  

再见,
 克里斯蒂安

--
http://wwwtech.de/
IRC-Clients und Irssi-Scripting | Flyspray
89,7% aller Statistiken sind frei erfunden!