Perl is pretty flexible about what a hash key can be...in your case, the date-time stamp is really just a string, and this is perfectly fine as a key. As to "what is the best way to do this?" it depends on how deeply you want to parse the strings. My personal recommendation is to keep the data structure as simple as possible (hashes of hashes of hashes and beyond for such a simple application are overkill) to allow convenient access to bits of data. A simple example scheme would be to have the date-time stamps as keys pointing to a reference to an anonymous array on which you push as elements everything else:
%superhash = (some_stamp => [a]);
push @{$superhash{$some_stamp}}, 'b'; # etc.