Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: detecting $& usage

by bl0rf (Pilgrim)
on Jan 27, 2004 at 21:37 UTC ( #324541=note: print w/ replies, xml ) Need Help??


in reply to detecting $& usage

I would do:

if( defined $' or defined $& or defined $` ) { warn "Inefficient code encountered" }


Comment on Re: detecting $& usage
Download Code
Re: Re: detecting $& usage
by Ovid (Cardinal) on Jan 27, 2004 at 22:06 UTC

    That doesn't work. The mere existence of those variables anywhere in your code will trigger this problem. The following will demonstrate the problem:

    use Benchmark; + my $text = <<'END_TEXT'; this isa test of test text that I am testing END_TEXT + my $start = new Benchmark; + for (1 .. 1000000) { while ($text =~ /(test)/g) { my $foo = $1; } } my $end = new Benchmark; my $diff = timediff($end, $start); print "While not using \$` the code took: ",timestr($diff),"\n"; exit; my $foo = $`;

    Run that a few times, then try commenting out that last line. Even though that line can never be executed, you'll see that the presense of that variable slows the program down.

    Cheers,
    Ovid

    New address of my CGI Course.

      Thanks for clarifying that for me

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (12)
As of 2014-08-29 21:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (289 votes), past polls