Thread Erklärung zu wantarray (28 answers)
Opened by renee at 2006-09-19 17:04

renee
 2006-09-19 17:04
#70032 #70032
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
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:


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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:
Code: (dl )
1
2
3
4
5
6
~/entwicklung 264> perl wantarr.pl 
im list-Kontext
1 2 3 4
im Skalar-Kontext
Hallo Welt
im void-Kontext
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Erklärung zu wantarray