我有一个带有sub _where(\@ \&)
2 个参数的函数:第一个是数组,第二个应该是另一个函数。这个另一个函数返回一个布尔值,我想在我的 forsub _where(\@ \&)
函数循环中调用它。
我无法将传入的函数提取到自定义本地名称中。我想我确实需要一些本地名称,因为应该可以将不同的布尔函数传递给我的where
函数。
在哪里:
sub _where(\@ \&)
{
my @stud = @{$_[0]};
my $student;
my $function = shift;
my $bool = 0;
my $i;
for $i(0..$#stud)
{
my $student = $stud[$i];
function $student;
}
}
应该传递的 Function1:
sub name_starts_with($)
{
my $letter = 'B';
my $student = shift;
my $first;
$first = substr($student -> name, 0, 1);
if($first eq $letter)
{
return 1;
}
}
应传递给的 Function2 where
:
sub points_greater_than($)
{
my $sum_pts = 5;
my $student = shift;
my $pts;
$pts = $student -> points;
if($pts > $sum_pts)
{
return 1;
}
}
希望你们能在这里帮助我。干杯