#!/usr/bin/perl package enh_Array; sub new { my $class = shift; $class = ref($class) || $class; my $self = []; bless($self, $class); return $self; } sub selected (&) { my $self = shift; my $func = shift; return grep &{$func}, @$self; } # # End of package # package main; use strict; use warnings; use Data::Dumper; my $obj = new enh_Array; push @$obj, qw ( 12 19 35 37 48 98 25 ); print Dumper [$obj->selected(sub {($_ > 35)})]; exit;