Clouse Variables as Inputs

物理狂人發表於2012-05-02
use File::Find;

sub print_bigger_than {
my $minmum_size = shift;
return sub { print "$File::Find::name\n" if -f and -s >= $minimun_size};
}

my $bigger_than_1024 = print_bigger_than(1024);
find ($bigger_than_1024, 'bin');

給print_bigger_than傳遞1024引數,因為access $minmum_size是通過print_bigger_than返回值的引用方式,所以它是一個closure 變數,並且在整個子程式引用的生命週期中都不會消失。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24104518/viewspace-722587/,如需轉載,請註明出處,否則將追究法律責任。

相關文章