Это заставляет игнорировать прототип подпрограммы.
$ perl -e'
sub f($@) { print("@_\n"); }
my @a = (4,5,6);
f(4,5,6);
f(@a);
&f(@a);
'
4 5 6
3
4 5 6
Но это, вероятно, не причина, по которой он используется здесь. В конце концов, Cwd::getcwd
не имеет прототипа. &
нельзя использовать с именованными операторами (т. Е. Функциями perlfunc , например, print
), поэтому некоторые новички используют его в подпрограммах, чтобы отличать их от операторов. Я полагаю, что это практика, рекомендуемая популярной книгой по Perl.