Если эти подводные лодки должны быть приняты по номинальной стоимости, my_sub
ничего не делает.
Здесь происходит две вещи:
Определитьcoderef
my $adder = sub { my ( $first, $second ) = @_; $first + $second };
# Adds first two arguments
Выполните его с необходимыми параметрами
print $adder->(2,3); # '5'
Предполагая, что my_sub
является своего родафунктор, которому передается coderef в качестве первого аргумента:
sub functor {
my $coderef = shift; # Pull of first argument
$coderef->( @_ ); # Rest of @_ are coderef arguments
# Or simply : sub functor { +shift->( @_ ) }
}
# Usage:
print functor ( $adder, 2, 3 ); # '5'