I don't like "anonymous" website visitors in a CGI script forking off pretty much anything. An oversight in your code or configuration could lead to a disaster (http://yourhost/script.cgi?MyConfig=/etc/passwd&Delete=Yes ;).
I would rather look to other options. Good alternatives have been mentioned, Cron/AT/TS for deleting the files or possibly using cookies set to expire instead of the little config files. YAOption is having your script ignore any file modified too long ago, using
stat:
my $filename = "the_users_file";
my $usable_date = "some number";
my $Modified = (stat($filename))[9];
if ($Modified > $usable_date) { ignore_it } else { continue_as_planne
+d }
There's also a File::stat module that can make things a little more readable, while performing the same basic task.
In my personal opinion, deleting files on your server is really a system administration issue, and should not be trusted to a 755 CGI script. From there, it gets pretty easy.
my $0.02; # Nothing more, nothing less.