in reply to Sorting a list of filenames

At first glance, at least, it seems that your code is going to loop forever:
# Loops forever for ($i=0; $i++;) { $pers = @buschecked[i]; }

I'd suggest iterating over the list itself:

# Goes through list for (@buschecked) { $pers = $_; }

Plus, assigning to $pers doesn't actually do anything, so I'm not sure why you're doing it. :)

May I suggest the File::Find module, plus Time::Local or one of the many other Time or Date modules on CPAN.

Update: Changed Date::ParseDate to Time::Local, since it seemed more applicable.