我是Perl的新手。我只需要发送一个将两个参数带到另一个函数的通用函数,然后从第二个函数内部调用第一个函数。我不太清楚如何做到这一点。这是我想写的代码。
sub add { return $_[0] + $_[1]; }
sub subt { return $_[0] - $_[1]; }
sub dosth
{
my ($func, $num0, $num1) = @_;
# how to call code $func with arguments $num0 and $num1 and return the return value of $func
}
print dosth(add, 3, 2) . " " . dosth(subt, 3, 2); # desired output: 5 1
答案 0 :(得分:5)
像这样:
sub add { return $_[0] + $_[1]; }
sub subt { return $_[0] - $_[1]; }
sub dosth {
my ($func, $num0, $num1) = @_;
return $func->($num0, $num1);
}
print dosth(\&add, 3, 2) . " " . dosth(\&subt, 3, 2); # 5 1
诀窍是将引用传递给子程序dosth
,然后你可以用箭头间接调用。