Whenever you declare the anonymous hashes, initialize the appropriate elements (TIME & LastLogon it looks like) to zero. Also it looks like you have a typo - in one instance you have 'LastLogon' and in another you have 'lastLogon'.
P.S. I for one was suprised that this even worked at all, let alone without errors or warnings. Can anyone point me to some documentation or explain this syntax:
#!/usr/local/bin/perl -l -w
use strict;
my %hsh;
# Not '$hsh{hello} = 1' ???!!!
%hsh->{hello} = 1;
for (keys %hsh) {
print "$_=$hsh{$_}";
}