Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Detecting constant arguments passed to subroutines

by dcd (Scribe)
on May 29, 2001 at 10:30 UTC ( [id://83847]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Detecting constant arguments passed to subroutines
in thread Detecting constant arguments passed to subroutines

I just found the real functions I was looking for readonly in Scalar::Util. I haven't figured out yet why calling it indirectly via the is_const function doesn't detect that undef is a constant, as perl dies with an error when trying to modify the undef constant, but at least the readonly is easier to read and comprehend. If anyone can explain the undetect undef constant in is_const I'd be greatful.
use Scalar::Util 'readonly'; sub is_const { readonly($_[0]); } print "undef is readonly\n" if readonly(undef); print "undef not detected in is_const\n" unless is_const(undef); for $x (4, "a", undef) { print "$x ";$x="VAR" unless readonly($x); print $x,"\n"; } for $x (4, "a", undef) { print "$x ";$x="VAR" unless is_const($x); print $x,"\n"; }

Replies are listed 'Best First'.
Re^2: Detecting constant arguments passed to subroutines
by Anonymous Monk on Sep 14, 2005 at 00:24 UTC
    It is a difference between:
    sub is_const { readonly($_[0]); }
    sub is_const { readonly(@_); }
    sub is_const { readonly($_); }
    
    --
    Lubomir Host 'rajo'
    http://rajo.platon.sk

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (1)
As of 2024-04-25 01:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found