我有一個函數sub _where(\@ \&)
,它有兩個參數:第一個是數組,第二個應該是另一個函數。這個其他函數返回一個布爾值,我想在我的函數sub _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;
}
}
功能1應該傳遞:
sub name_starts_with($)
{
my $letter = 'B';
my $student = shift;
my $first;
$first = substr($student -> name, 0, 1);
if($first eq $letter)
{
return 1;
}
}
功能2應該傳遞給where
:
sub points_greater_than($)
{
my $sum_pts = 5;
my $student = shift;
my $pts;
$pts = $student -> points;
if($pts > $sum_pts)
{
return 1;
}
}
希望你們能幫助我在這裏。乾杯
,能得到任何錯誤訊息? – 2013-04-10 00:29:31