Since you are just starting out with Perl and are unspoiled from the old ways of doing OOP in Perl, I would strongly suggest to use the IMHO best way of OO in Perl 5.x, namely
Moose and forget about the others for the time being. It is much cleaner and easier to understand and you don't have to handle hashes or other data structures to represent your objects.
That being said, your code won't run as it stands, there are many compilation errors because of undefined symbols, a non-matched closing bracket and barewords "self" and "tempBirds".
I cannot understand exactly what your problem is. Can you please get your code into a runnable state. Then I will have a chance to analyze the real issue.