如何在Perl中的同一脚本中重用代码?我们需要使用require
或use
。或者,还有其他任何方法/事物吗?
注意:我正在使用的脚本不是函数。
答案 0 :(得分:0)
以下是3种“重用”或重复代码而不使用subs
的方法eval接受一个字符串并将其作为perl运行。请参阅perldoc perlfunc中的条目
使用代码引用需要一个未命名的函数并引用它。然后可以如图所示运行。
AUTOLOAD有点疯狂。这将分析您调用的函数并在函数名称中查找模式,然后使其表现得就像有一个具有此名称的实际函数一样
在perl中有许多其他方法可以执行“重用”
#!/usr/bin/perl
#
use warnings;
use strict;
#example : eval
my $x="print qq(cheese\n)";
eval "$x";
#example : code reference
my $code=sub { my $param=shift; print qq(hairy $param\n); };
$code->("goats");
#example : AUTOLOAD
no strict 'subs';
use vars qw/$AUTOLOAD/;
sub AUTOLOAD {
my $full=$AUTOLOAD;
if ($full =~ /panda_(\d)/ ) {
print "panda " x $1;
print "\n";
}
}
panda_3();
panda_6();