我是Perl语言的新手,在我使用的代码中有以下一行:
$BASEDIR = &getcwd();
我想知道为什么对
&
的调用前面有一个getcwd
,而我找不到关于它的任何引用。有人可以帮我吗?非常感谢 !
最佳答案
这将导致子例程的原型被忽略。
$ 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书中推荐的一种做法。