2016-04-01 16 views
0

Perl'de yeni. Sadece iki parametreyi başka bir işleve alan genel bir işlev göndermem ve sonra ikinci işlevin içinden ilk işlevi çağırmam gerek. Bunun nasıl yapılacağından emin değilim. İşte yazmaya çalıştığım kod. Bunun gibiBir işlevi Perl'deki başka bir işleve argüman olarak nasıl iletir ve sonra arar?

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 

cevap

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 

Çevrimiçi http://codepad.org/RX1auCRn

hüner de o zaman ok ile dolaylı arayabilir, dosth için alt yordam başvuruları geçmektir.

İlgili konular