Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Five Ways to Reverse a String of Words (C#, Perl 5, Perl6, Ruby, Haskell)

by shmem (Canon)
on Dec 12, 2006 at 15:09 UTC ( #589293=note: print w/ replies, xml ) Need Help??


in reply to Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell)

perl5 version without join -

sub reverseWords { "@{[reverse split' ',shift]}" }

<update>

and without split -

sub reverseWords { "@{[reverse shift=~/\S+/g]}" }

</update>

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}


Comment on Re: Five Ways to Reverse a String of Words (C#, Perl 5, Perl6, Ruby, Haskell)
Select or Download Code
Re^2: Five Ways to Reverse a String of Words (C#, Perl 5, Perl6, Ruby, Haskell)
by bart (Canon) on Dec 13, 2006 at 11:12 UTC
    Nice, but you're counting on the special variable $" to have its default value. There's no reason for people not to touch it.

    Either use join, or use

    local $" = ' ';
    in your sub.
      ...yeah, and if I get paranoid I also check whether the stringify and/or (de)ref operators are overloaded, and maybe somebody changed shift and reverse via e.g. schwern's Function::Override... ;-)

      I guess that if somebody changes $" globally, they have a reason, now don't they?

      --shmem

      update: inserted globally

      _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                    /\_¯/(q    /
      ----------------------------  \__(m.====·.(_("always off the crowd"))."·
      ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
        Humbug. If your function API isn't explicitely saying it's using the current value of $", then it shouldn't use its current value.

        Do not assume people haven't touched it. They have every right to, without having to appologize for it, to you.

        Don't forget code filters, too! :-) Just because it says "sub" doesn't mean it actually *means* sub! ;-)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://589293]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (5)
As of 2014-12-28 14:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (181 votes), past polls