構文 |
|
wantarray |
返り値 |
|
戻り値にリストが要求されている場合に真 |
説明
- 現在のサブ・ルーチンの戻り値としてリストが要求されている場合に真,スカラーが要求されている場合に偽を返します。
使用例
#!/usr/bin/perl
use strict;
use warnings;
my ($year, $month, $day) = get_today();
print "$year/$month/$day\n";
my $today = get_today();
print $today, "\n";
sub get_today {
my ($d, $m, $y) = (localtime)[3..5];
$y += 1900;
$m++;
if (wantarray) {
return ($y, $m, $d); # リストで返す
} else {
return "$y-$m-$d"; # スカラーで返す
}
}
#!/usr/bin/perl
use strict;
use warnings;
my @data = (1, 2, 3, 4, 5, 6, 7, 8, 9);
my @ret = get_even(@data);
foreach my $item (@ret) {
print $item, "\n";
}
print "\n";
my $even_num = get_even(@data);
print $even_num, " item(s)\n";
sub get_even {
my @list = @_;
my @target = grep {$_ % 2 == 0} @list;
if (wantarray) {
return @target;
} else {
return scalar(@target);
}
}