in reply to %Hashing Arrays

In addition to what has already been suggested, you may want to create your array references as copies like so:
%station_data = (1, [@station1], 2, [@station2], 3, [@station3], ...
This is useful if you'd rather not store a reference to the original @stationX array (note that are not these deep copies, however). Also, there is quite a bit of repetition in your code. If you're feeling adventurous, consider reducing it to:
{ no strict 'refs'; $station_data{$_} = \@{"station$_"} for 0..9; }
Although, the fact that you would want to consider disabling strict (ie. the fact that you have sequentially numbered variables @station(1..9)) is often indicative of a poor design choice in your code. Ask yourself how these sequential list variables got there in the first place, and how you could employ a reference-based data structure like a hash of arrays (or preferably array of arrays) from the beginning.

Additionally, read up on perlreftut, perllol, perldsc, and perlref. Teach a man to fish, ya know...