On Sunday 16 July 2006 07:26, Paul Johnson wrote: > On Sun, Jul 16, 2006 at 05:48:10AM -0400, Daniel D Jones wrote: > > It certainly does help. I thought about substitution but couldn't > > come up with a syntax. This seems to be exactly what I was looking > > for, but I'm running into a problem. Here's code which demonstrates > > it: > > [ ... ] > > > As you can see, the @values array is being shuffled to generate the > > perms correctly. However, the substitution seems to always be using > > the original, unshuffled values. Is it being cached somehow or what? > > Try printing out @tests when you print out @values. > > When you iterate through @tests, $test is an alias to the array elements > rather than a copy of them. So altering $test is changing @tests. This > is what you are seeing.
Ah! Simple change: sub runtests() { my $test; foreach (@tests) { $test = $_; $test =~ s/([a-z])/$values[ord($1) - ord('a')]/g; return 0 unless eval $test; } return 1; } Thanks! -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>