Die Funktion liest eine Datei und liefert den Dateiinhalt (return $inhalt),
wenn die Datei vorhanden ist und der Inhalt nicht leer ist.
Das wäre OK, aber das ...
Im anderen Fall wird je nach Zustand -2, -1, 0 zurückgeliefert.
ist natürlich Murks. Zumindest absolut ungewöhnlich, dass eine Funktion entweder eine Zahl oder einen String zurückgibt.
die einfachste Variante wäre wenn deine Funktion ein array mit einem Status zurückgibt:
sub deineFunktion {
#...
return wantarray ? ($inhalt, $status) : $inhalt;
}
my($inhalt, $status) = deineFunktion();
Ist ein Text > 0, d.h. ist die Abfrage "if (myfunc) {#Text vorhanden}" korrekt?
Es würde zwar funktionieren, ruft aber eine Warnungen hervor (wenn du mit use warnings arbeitest, was du solltest).
Struppi.