Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

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.


    New address of my CGI Course.

      Thanks for clarifying that for me

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2018-03-21 06:10 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (264 votes). Check out past polls.