sub new_filename { my $filename = shift; my $ext; my $newname; if ($filename =~ /.*(\.[a-zA-Z0-9]{2,4})$/) { $ext = $1; } else { return; } do { $newname = rand_string() . $ext; } while (-e $newname); return $newname; } sub rand_string { my @char = (0..9, 'a'..'z', 'A'..'Z'); my $string = ''; for (1 .. 15) { $string .= $char[rand 64]; } return $string; }