http://qs321.pair.com?node_id=324547


in reply to Re: detecting $& usage
in thread detecting $& usage

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.