in reply to parse hash to sub

Parameters to a sub are flattened into a single list. More information can be found at perlsub.

In reference to your question, either pass a reference or shift off the first item, then assign to your hash - ie:

my $count = shift; %packages = @_;

HTH...