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

Re^4: question regarding "Tie" in Perl

by BrowserUk (Pope)
on Nov 05, 2013 at 01:49 UTC ( #1061226=note: print w/replies, xml ) Need Help??

in reply to Re^3: question regarding "Tie" in Perl
in thread question regarding "Tie" in Perl

Cool'n'all as that is, by deferring the construction of constants to runtime, you disavail yourself of various compile-time optimisations that Perl has.

Even the very act of interpolating a read-only variable is an active pessimisation, as whilst perl will enforce the read-onliness, Perl does not (cannot) know that it need not re-interpolate the variable every time it is used:

use constant CONSTANT => 10;; Internals::SvREADONLY( my $READONLY = 10, 1);; [Type of arg 1 to Internals::SvREADONLY must be one of [$%@] (not scal +ar assignment) at (eval 11) line 1, near "1)" $READONLY = 10; Internals::SvREADONLY( $READONLY, 1);; ++$READONLY;; [Modification of a read-only value attempted at (eval 13) line 1, <STD +IN> line 6. cmpthese -1,{ a=>q[ for(1..1000){ my $string = "the constant is " . CONSTANT . " +\n" } ], b=>q[ for(1..1000){ my $string = "the readonly is $READONLY\n"; } + ], };; Rate b a b 3893/s -- -46% a 7236/s 86% --

A small a difference as that may be; it is all those avoidable small bits that add up.

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1061226]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2018-05-26 22:24 GMT
Find Nodes?
    Voting Booth?