sub get_unique_filename { my ( $name, $max_tries ) = @_; return if not -e $name; $name =~ s/(\.[^\.]+)$//; my $ext = $1 ? $1 : ''; my $tries = 1; my $max_tries ||= 100; while ( -e $name.$tries.$ext ) { $tries++; die "Could not make a unique filename for $name$ext\n" if $tries > $max_tries; } return $name.$tries.$ext; }