![ein Kapitel weiter](../weiter.gif)
Wenn sie nun eine kontexintesive Funktion schreiben wollen ist
auch dies in Perl kein Problem. Mit der Funktion wantarray()
können sie überprüfen ob Ihre Funktion im Listenkontex aufgerufen
wurde (true) oder im skalaren Kontex (false). Dabei gehen sie
wie folgt vor.......
sub func{
if(wantarray){
#Rückgabewert ist @array
}
else{
#Rückgabewert $skalar
}
}
Und so sieht eine Kontexintesive Funktion in der Praxis aus....
#!/usr/bin/perl -w
sub kontex{
if(wantarray){
my @add = @_;
my $tmp;
foreach $add(@add){
$add=$tmp+=$add;
}
return @add;
}
else{
my($tmp, $add);
foreach $add(@_){
$tmp+=$add;
}
return $tmp;
}
}
@liste = (1..10);
$tot = kontex(@liste);
print $tot , "\n";
@res = kontex(@liste);
print "@res\n"
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|