Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Re: First char out of a string & surprises with errors on chop reverse $string (that doesn't work!)

by eduardo (Curate)
on Dec 26, 2001 at 21:47 UTC ( [id://134433]=note: print w/replies, xml ) Need Help??


in reply to Re: First char out of a string & surprises with errors on chop reverse $string (that doesn't work!)
in thread First char out of a string & surprises with errors on chop reverse $string (that doesn't work!)

Ok... we'd figured that far when jeffa got:
sub bar { my $str = "foo"; return scalar reverse $str; } print chop bar(); captvanhalen: $ perl foo Can't modify non-lvalue subroutine call in chop at foo line 6, near " +);" Execution of foo aborted due to compilation errors.
Now, my question is... that's not very "DWIM" of perl... (at least not to me!) Why does reverse not return an lvalue?
  • Comment on Re: Re: First char out of a string & surprises with errors on chop reverse $string (that doesn't work!)
  • Download Code

Replies are listed 'Best First'.
Re: Re: Re: First char out of a string & surprises with errors on chop reverse $string (that doesn't work!)
by merlyn (Sage) on Dec 26, 2001 at 21:55 UTC
      Definite agreement... reverse $foo = "merlyn"; makes little to no sense. However, chop reverse $foo; does seem relatively reasonable... (though I see how it quickly goes to hell in a handbasket.) I remember when in my Data Structures in C++ class they tried explaining the reason to overload some operators as lvalues, and some not... it always seemed like you could *find* a scenario where you may want that functionality (though I doubt 2 + 2 = $foo; would ever be a good one :) Well... thanks to everyone for the answers! I am going to agree that it really makes very little sense to let reverse return an lvalue... though I think the obfuscation "value" alone may warrant it :)
        though I doubt 2 + 2 = $foo; would ever be a good one :)
        "2 + 2 equals $foo, for certain values of 2"... hmmm...

        No, really, i think 2 + $bar = 3 would be a nice way to write $bar = 1, but _very_ hard to make.

        2;0 juerd@ouranos:~$ perl -e'undef christmas' Segmentation fault 2;139 juerd@ouranos:~$

Re: Re: Re: First char out of a string & surprises with errors on chop reverse $string (that doesn't work!)
by Juerd (Abbot) on Dec 26, 2001 at 21:56 UTC
    For the same reason 2 + 2 doesn't return an lvalue.
    Besides, there's no reason for having reverse return an lvalue. TMTOWTDI, and reverse chop was never supposed to be one of them. Still, there are a lot of other WTDI.

    2;0 juerd@ouranos:~$ perl -e'undef christmas' Segmentation fault 2;139 juerd@ouranos:~$

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (4)
As of 2024-04-16 14:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found