use strict; use warnings; use File::Basename; use File::Spec; my $attach = "file.png"; my $filename = File::Basename::fileparse($attach); my $tempfile = File::Spec->catfile("tempdir", $filename); my $new_filepath = File::Spec->catfile("tempdir", "allfiles.png"); rename $tempfile, $new_filepath or die "Cannot rename file $tempfile to $new_filepath: $!";