# my Test package (Test.pm) package Test; use strict; use Data::Dumper; sub new { my ($class) = @_; my $self->{_name} = __PACKAGE__; $self->{_suffix} = ".sp"; bless $self, $class; } sub make{ my ($self,$arg) = @_; if (ref $arg eq 'ARRAY'){ foreach my $t (@{$arg}){ if (ref $t eq 'HASH'){ _ss($t) }; } } } sub _ss { my ($self, %arg) = @_; print Dumper(\%arg); } 1; ## and my test scritp(test.pl) use strict; use lib "./"; use Test; my $t = Test->new(); my @a; my %t = (1 =>"1", 2 => "2"); push(@a,\%t); $t->make(\@a);