@gum = qw(foo noo goo); @do = qw(test); package test; sub new {my $pkg = shift; bless { name=> "test", array=>\@gum } } sub express{ my ($self, $body) = @_; #======================== print "$body: $self->{name} ", ref $self->{array}," $self->{array}\n"; print "@$self->{array}\n"; #========================= } package main; foreach $type (@do){ $moo = new $type(); $moo->express("here it is"); } #### C:\apache\cgi-bin\test>perl phah.pl here it is: test ARRAY ARRAY(0x1824778) Not an ARRAY reference at phah.pl line 15.