Leser: 13
1 2 3 4 5
use Digest::SHA::PurePerl qw(sha1_hex); my $directory = '/Foo/bar/'; my $hash = sha1_hex($directory);
Quoteok, dann kann es Konflikte geben, aber wird wohl vermutlich nicht der Fall sein - wenn doch, müsstest du halt einen anderen Separator nehmen).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
use Digest::SHA qw(sha1_hex); local $/ = undef; my $wiki_code = <DATA>; $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]]
$content_img =~ s/(\[\[Image:)(.+)\/(.+)(\]\])/"$1".$2."_$3$4"/ge;
[[Image:Anwendung_und_Kopilieren-Dateien_image002.jpg]]
[[Image:Anwendung_und_Kopilieren-Dateien_image002.jpg|300px]]
1 2 3
my $img_size = 300; # determine image size $content_img =~ s/(\[\[Image:)(.+)\/(.+)(\]\])/"$1".$2."_$3$4|$img_size"/ge;
$content_img =~ s/(\[\[Image:)(.+)\/(.+)(\]\])/"$1".$2."_$3$4"/ge;
[[Image:Vermessungspunkte-Dateien/image028.jpg]]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
sub convert_special_characters($) { my $str = shift; $str =~ s/Ü/Ue/g; $str =~ s/Ä/Ae/g; $str =~ s/Ö/Oe/g; $str =~ s/\x{1E9E}/SZ/g; # U+1E9E $str =~ s/ß/sz/g; $str =~ s/ü/ue/g; $str =~ s/ä/ae/g; $str =~ s/ö/oe/g; return $str; } $content_img =~ s/(\[\[Image:)(.+)\/(.+)(\]\])/convert_special_characters($1.$2."_".$3.$4)/ge;
my $str = shift;