Was kann ich mit wantarray machen?
Mit wantarray kann man herrausfinden, ob als Rückgabewert einer Subroutine/Methode eine List, ein Skalar angefordert wird, oder ob die Subroutine/Methode im void-Kontext ausgeführt wird.
Beispiel:
#!/usr/bin/perl
use strict;
use warnings;
# im list-Kontext
my @array = test();
print "@array\n";
# im skalaren kontext
my $test = test();
print $test,"\n";
# im void-Kontext
test();
##
# die sub
##
sub test{
if(wantarray){
print "im list-Kontext\n";
return qw(1 2 3 4);
}
elsif(defined wantarray){
print "im Skalar-Kontext\n";
return "Hallo Welt";
}
elsif(! defined wantarray){
print "im void-Kontext\n";
}
else{
print "dieser Fall sollte eigentlich nie eintreten\n";
}
}
Ausgabe:
~/entwicklung 264> perl wantarr.pl
im list-Kontext
1 2 3 4
im Skalar-Kontext
Hallo Welt
im void-Kontext
.
Ergänzungen, Kommentare
Kommentare werden am besten in folgender Form vorgenommen, damit
sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---+++ Main.??? - 14 Jul 2003 - Betreff