Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Need to change directory string.

by huchister (Acolyte)
on Jan 02, 2013 at 16:15 UTC ( #1011302=perlquestion: print w/replies, xml ) Need Help??
huchister has asked for the wisdom of the Perl Monks concerning the following question:

I would like to change directory string. Here is the example URL.
my $dir_str = "test/home/players/demo//thumbs/super.jpg";
I am trying to remove 'demo//thumbs' part to 'demo/thumbs' Is there easier way to put this? I am trying to use s/ method.

Replies are listed 'Best First'.
Re: Need to change directory string.
by toolic (Bishop) on Jan 02, 2013 at 16:20 UTC
    Here's one way using s///:
    use warnings; use strict; my $dir_str = "test/home/players/demo//thumbs/super.jpg"; $dir_str =~ s{//+}{/}g; print "$dir_str\n"; __END__ test/home/players/demo/thumbs/super.jpg

    UPDATE: fixed typo. Thanks Athanasius

      Well, this produces .../demothumbs/..., but the OP states that he wants .../demo/thumbs/.... So a small amendment is needed:

      2:29 >perl -wE "$d = 'test/home/players/demo//thumbs/super.jpg'; $d = +~ s[/{2,}][/]g; say $d;" test/home/players/demo/thumbs/super.jpg 2:34 >

      Hope that helps,

      Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Re: Need to change directory string.
by 2teez (Priest) on Jan 02, 2013 at 20:54 UTC

    "..Is there easier way to put this?.."

    Another way is to use canonpath method from File::Spec like so:

    use strict; use warnings; use File::Spec qw(canonpath); my $dir_str = "test/home/players/demo//thumbs/super.jpg"; print File::Spec->canonpath($dir_str);

    No physical check on the filesystem, but a logical cleanup of a path.

    If you tell me, I'll forget.
    If you show me, I'll remember.
    if you involve me, I'll understand.
    --- Author unknown to me

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1011302]
Approved by toolic
Front-paged by 2teez
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2018-01-17 05:57 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (196 votes). Check out past polls.