in reply to Help!!!! POOP is confusing me!

my self =shift; my tempBirds=[] ; # right way of initialising an array ??

All Perl variables need sigils, so you'd write that as

my $self = shift; my @tempBirds; # no initialization needed

Or if you want to work with an array ref instead:

my $self = shift; my $tempBirds = [];