Thread Automatisches Warning bei falschem Kontext für Funktion (15 answers)
Opened by LanX- at 2009-06-03 16:49

topeg
 2009-06-04 16:45
#122346 #122346
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Aber egal was man macht es gehen keine Daten "verloren". Die Prüfung um was es sich handelt ist aus der Funktion herausgenommen, das hängt dann vom aufrufenden ab.

Quote
@ret ist jetzt ein einelementiges Array, ist das wirklich gewollt?

Es ist halt nicht wichtig, du kannst testen was du bekommst. ("ref" zeigt es schon)

Als Beispiel:
Man öffnet eine Datei und gibt die Zeilen als Arrayref zurück im Fehlerfall wird aber nur eine Fehlernummer zurückgeliefert. Der Aufruf bleibt gleich:
Code (perl): (dl )
my $data = read($file);

später kann man dann testen was genau man bekommt:
Code (perl): (dl )
1
2
3
4
5
if(ref($data) eq 'ARRAY')
{
  #...
}
else{ die "ERROR $data"; }

oder als besser lesbarer Funktionsaufruf:
Code (perl): (dl )
if(is_array($data)) #... 

(jaja ich weiß dafür ist $! da, soll auch nur ein Beispiel sein.)

View full thread Automatisches Warning bei falschem Kontext für Funktion