in reply to Subroutine Parameters

++GrandFather. I would add that, since you will need to work with references anyway, get rid of the (\@\%) prototypes (which are rarely a good idea), and pass references directly, like this: user( \@age, \%home ).

Bonus bug waiting to happen: Once you place Kelvin and Andrew into the hash %home, they lose their ordering. If you intend to match the 20 to Kelvin and 30 to Andrew, you will not be able to do this using only the info in %home and @age!