... my $duplicates; my $old_target = $target; while( $filenames{ $target }) { $duplicates++; ( $target = $old_target )=~ s!\.(\w+)$!_$duplicates.$1!; }; - $names->{ $res->{url} } = $target; + $names->{ $res->{url} } = File::Spec->catfile( $base_dir, $target ); };