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

LanX-
 2009-06-04 21:14
#122352 #122352
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
2009-06-04T16:47:48 Linuxer
Korrektur:

Code (perl): (dl )
return wantarray ? @list : \@list;


grins passt gut zu

2009-06-04T16:07:54 sid burn
am ende finde ich jetzt auch nicht so aufwendig.


nur springen einem Fehler nicht sofort ins Auge... 8 )


@all: Ich finde ja eure Vorschläge interessant und bedenkenswert, aber es war nicht wirklich meine Zielrichtung immer alle Kontexte zu bedienen (was zwar auch mal vorkommt)

Ich möchte auf elegante Weise fehlerabweisenden Code schreiben. Wenn eine Funktion nur für einem Kontext gedacht ist, soll's andernfalls eine Warnung geben.

Klar kann ich schreiben:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
use Carp;

sub test { 
  croak q{Wrong Context} unless wantarray ;
  return qw/a b c/;
}

print test();
print scalar test(); # Fehler
test();              # Fehler


aber wenn dass zig Funktionen betrifft ... wirds zäh.

Mein Gedanke: Je eleganter man dies lösen kann umso eher nutz man es, umso sicherer wird der Code.

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