use File::Spec; -d $subdir_path or mkdir($subdir_path, 0777) or die "mkdir of $subdir_path failed: $!\n"; rename($filename, File::Spec->catfile($subdir_path, $filename)) or die "rename of $filename failed: $!\n";