package BlessedSub;
use base 'Exporter';
@EXPORT = qw/blessed_sub/;
## prototyped for convenience
sub blessed_sub(&) {
my $anonymous_sub = shift;
bless $anonymous_sub, __PACKAGE__;
}
sub filter {
my ($self, @items) = @_;
## check if all the items return succesfully
for (@items) {
return 0 unless $self->($_);
}
return 1;
}
####
my $obj = blessed_sub { $_[0] =~ /foo/ };
die unless $obj->filter(qw/foobar foobaz bazfoo barbaz barfoo/);
####
my $obj = blessed_sub { /foo/ }; ## now uses $_, not @_
die unless $obj->filter(qw/foobar foobaz bazfoo barbaz barfoo/);