TGI has asked for the wisdom of the Perl Monks concerning the following question:
As part of a project I'm working on, I need to play with a path-like data structure. It comes in the form '/foo/bar/baz'. I need to check the full path, then '/foo/bar', then '/foo' and finally '/'.
So I've put together a do {} while loop that terminates when the path variable is length 0. I'm using a regex to trim the path:
do { if (exists $o->{$path}) { # Do stuff } # trim path print "\t\t$path\n"; $path =~ s:(^/$)|((?<=^/)[^/]+$)|(/[^/]+$)::x; } while ( length $path > 0 );
I keep futzing with the regex and can't come up with something that works. I keep failing to get '/' processed.
Once again, here's the transformation I'm looking for:
'/foo/bar'-> '/foo' '/foo' ----> '/' '/' -------> ''
TGI says moo
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Trimming Paths with regexes
by damian1301 (Curate) on Aug 30, 2001 at 01:15 UTC | |
|
Re: Trimming Paths with regexes
by jryan (Vicar) on Aug 30, 2001 at 01:21 UTC | |
|
Re: Trimming Paths with regexes
by demerphq (Chancellor) on Aug 30, 2001 at 05:24 UTC | |
|
Re: Trimming Paths with regexes
by dga (Hermit) on Aug 30, 2001 at 01:48 UTC | |
|
Re: Trimming Paths with regexes
by Hofmator (Curate) on Aug 30, 2001 at 14:43 UTC |