if ($1 =~ /\/.*?\//ig)
/PROJ/oip/SDK/MV_20121019_M8_4.2.2/IMX6x/MV_Tools/tools/arm-gnueabi/arm-montavista-linux-gnueabi
2012-11-29T10:03:49 pqvielleicht solltest du einfach das nächste mal dazuschreiben, was du als ergebnis haben willst.
1
2
3
4
5
$ perl -wle ' $path = "/foo/bar/foobar"; @elements = split m{/}, $path; print join "\n", @elements'
foo
bar
foobar
2012-11-29T11:26:36 LinuxerWas funktioniert denn nicht?
Werde bitte mal genauer und gib uns Daten und Code, womit Du experimentierst.
Code: (dl )1
2
3
4
5$ perl -wle ' $path = "/foo/bar/foobar"; @elements = split m{/}, $path; print join "\n", @elements'
foo
bar
foobar
split() funktioniert hier super.
2012-11-29T08:38:28 pqnaja, mit einer while-schleife. while ($var =~ m/.../g)
allerdings ziemlich ungünstig, auf $1 eine regex loszulassen.
ehe du dichs versiehst, hast du in der regex auch ein capture drin, das dir $1 überschreibt und in der nächsten iteration matcht gar nix mehr.
variablen wie $1 sollten immer möglichst frühzeitig nach dem matchen in einer richtigen variable oder datenstruktur gespeichert werden.