2013-11-25T10:10:49 Speedriff$part = ~s/^(.*\/).*$/\1/g; # Das ist Magie... ;-)
2013-11-25T10:26:23 jan... in Worten ausgedrückt lautet der Ausdruck also
"Fange am Anfang an. Finde beliebig viele beliebige Zeichen bis ein Slash auftaucht ..."
2013-12-02T15:41:09 payxder Ausdruck .* matcht so viele Zeichen wie möglich.
Der Ausdruck .*\/ matcht so viele Zeichen wie möglich und dann einen Slash.
Der Ausdruck .*?\/ matcht so wenige Zeichen wie möglich und dann einen Slash.
2013-12-02T15:41:09 payxPS: Ich persönlich würde es eher nicht in Angriff nehmen, einen Leitfaden für den Gebrauch von regular expressions zu verfassen. Erstens gibt es hierzu schon eine Menge sehr guter Literatur, zweitens ist das ein wahrhaft weites Feld ...
1 2 3 4 5 6
use File::Basename qw( basename dirname ); my $path = "/path/to/file.txt"; print "DIR: ", dirname($path), "\n"; print "FILE: ", basename($path), "\n";