如何在Perl中将函数作为参数传递给另一个函数,然后调用它?
我是Perl新手。我只需要向另一个函数发送一个带两个参数的通用函数,然后从第二个函数内部调用第一个函数。我不太确定如何才能做到这一点。这是我试图编写的代码如何在Perl中将函数作为参数传递给另一个函数,然后调用它?,perl,Perl,我是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 $
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
像这样:
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
,然后可以使用箭头间接调用。如下所示:
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
,然后可以使用箭头间接调用