Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
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" }

Replies are listed 'Best First'.
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 musing on the Monastery: (4)
As of 2016-09-30 01:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Extraterrestrials haven't visited the Earth yet because:







    Results (562 votes). Check out past polls.