Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: can this be turned into a compile-time error?

by Thilosophy (Curate)
on Mar 11, 2005 at 03:56 UTC ( #438525=note: print w/replies, xml ) Need Help??


in reply to Re: Should chomping a constant always raise an error?
in thread Should chomping a constant always raise an error?

sub modify { chomp( $_[0] ); # whatever else happens, you've just potentially modified $_[0] } modify('fred'); # What would you expect to happen to 'fred'?
Great example. For those who did not try it out, it causes a runtime exception:
Modification of a read-only value attempted at /tmp/t.pl line 2.
Can modify somehow be declared to only take a modifiable parameter, so that we can have a compile-time error (as happens with the core chomp)?
Can't modify constant item in modify at -e line 1, at end of line Execution of -e aborted due to compilation errors.

Replies are listed 'Best First'.
Re^2: can this be turned into a compile-time error?
by QM (Parson) on Mar 11, 2005 at 18:54 UTC
    Can modify somehow be declared to only take a modifiable parameter, so that we can have a compile-time error (as happens with the core chomp)?
    Playing Devil's Advocate, will this work?
    chomp(foo(",",@list))
    Don't know? How about this?
    chomp(join(",",@list))
    It seems, off the top of my naive head, that the argument to chomp would have to be an l-value to be guaranteed to be modifiable.

    Is that what you want?

    -QM
    --
    Quantum Mechanics: The dreams stuff is made of

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2022-05-23 11:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (82 votes). Check out past polls.

    Notices?