Я новичок в Perl, может ли кто-нибудь объяснить мне следующие сценарии, пожалуйста:
#!/usr/bin/env perl
use strict;
use warnings;
sub f1($) { my ($v) = @_; print "f1 $v\n"; }
sub f2(@) { my ($v) = @_; print "f2 $v\n"; }
my $s = "ww";
my @a = ("xx", "yy", "zz");
f1 $s; f1 @a; f2 $s; f2 @a;
Вывод на моем компьютере:
f1 ww
f1 3
f2 ww
f2 xx # why!!
Кто-нибудь может объяснить, почему четвертый вывод равен xx? Я думал, что это должно быть zz, так как когда массив преобразуется в скаляр, он должен быть последним элементом массива.