in reply to best way to sort

The data structure depends on what you want to do with that data, not what the data looks like.

Since you want to sort it chronologically I assume the most frequent operation will be to look for all items between two dates. In that case a simple array would be best (i.e. the solution you would use as shell programmer too).

Sorting is done with the sort() function. You can provide sort() with a function it uses to compare two items (aliasing the items to $a and $b). In your case something like this would work:

my @sorted= sort { $b<=>$a } @unsorted;

You can read the perl documentation of the sort function for more info (with perldoc -f sort)

Generally a hash is not suitable for storing sorted data.