in reply to passing variables to a subroutine

So, what is the error you see, what values are you expecting, and what have you done to diagnose that? Can you reduce your code to a short example that does not need BioPerl?

Maybe you want to explain what the following line is doing, and compare that with what the line is actually doing when run by Perl:

# sub getDetails { my $proph=@_;

As a hint, using print in strategic locations usually helps to verify that values are passed around the way you think they are.