Check prototypes
sub mygrep (&@) {
my $f = shift;
return map { $f->() ? $_ : () } @_;
}
print join "\n", mygrep { $_%2 } 1..10;
Same thing as above, but without prototypes,
sub mygrep {
my $f = shift;
return map { $f->() ? $_ : () } @_;
}
print join "\n", mygrep( sub{ $_%2 }, 1..10 );