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

UtilFaqSubForm edit

Titel Was kann ich mit wantarray machen?
Autor ReneeBaecker
Bereich FaqSubroutinen
Topic revision: 2006-09-19, ReneeBaecker
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.