use Digest::SHA qw(sha1_hex); local $/ = undef; my $wiki_code = ; $wiki_code =~ s/(\[\[Image:)(.+)\/(.+)(\]\])/"$1".sha1_hex($2)."_$3$4"/ge; print $wiki_code; __DATA__ [[Image:Vermessungspunkte-Dateien/image021.jpg]] [[Image:Vermessungspunkte-Dateien/image028.jpg]] Marker: [[Image:Vermessungspunkte-Marker/image011.jpg]]