in reply to creating multiple views of a hash by reordering its key and values

Stop me if I'm saying something obvious, but does the plan of your script commit you to this data structure? - if not, would there be any merit in considering an array of hashes? - each hash having the three keys user, date, file. Then it would be easy to grep out the bits you want, e.g.
@results = grep { $_->{user} eq 'Fred' and $_->{date} >= 1023318000 and $_->{date} <= 1024182000 } @$userdatefile;
to get everything by Fred between the 6th and 16th of this month.

§ George Sherston