In den meisten Modulen findet man als letzte Code-Zeile:
1;
Es gibt aber auch andere Werte wie
"What???"
42
"200 OK"
domm hat CPAN nach diesen interessanten
Rückgabewerten durchsucht und eine Seite daraus gebaut: https://returnvalues.plix.at/
Warum gibt es diese Zeile(n) eigentlich? Wahrscheinlich haben die meisten schon eine Fehlermeldung wie
$ perl -I. -MPerl536 -E 1
Perl536.pm did not return a true value.
BEGIN failed--compilation aborted.
gesehen. Ursache ist, dass das Modul keinen wahren Wert zurückliefert. Wenn ein Programm mittels use
oder require
ein Modul einbindet, lädt Perl die Datei mit einer Variante des eval
-Mechanismus. Liefert das keinen wahren Wert, denkt Perl, dass ein Fehler passiert ist.
Mit Perl 5.38 wird sich das ein wenig ändern:
Mit
package Perl538;
use v5.38;
# ... code ...
oder
package Perl538;
use feature "module_true";
# ... code ...
muss das Modul keinen wahren Wert mehr zurückliefern.
Permalink: /2023-07-05-rueckgabewert-von-modulen