in reply to Re^2: search multiple lists
in thread search multiple lists

A few comments. One thing is any time you see a few variables whose names end in numbers, especially small sequential numbers (@tect1, @tect2, @tect3) you're usually better off seeing if you can't make them into an array. Nine times out of ten, you end up wanting to treat them that way anyway. So in this case you could make an array of arrays in the first place.

The other problem I see is your grep. You're using the number you're looking for as a regexp. That works sometimes, but if you look for, say /1/ the list (7,10,12) it'll be found (because the string "10" contains the string "1"). So here's how I would have written this part.

@tectlist = ( [1,5,6,8,16,20], [1,7,10,12,13,14,15,18,19,22,23,24,46], [1,2,3,9,10,11,17,21,24,39,46], ); $variable=19; for my $i (0..$#tectlist) { if (grep {$_ == $variable} @{$tectlist[$i]}){ my $listnumber = $i+1; print "List $listnumber contains $variable.\n"; } }

Replies are listed 'Best First'.
Re^4: search multiple lists
by mlh2003 (Scribe) on Mar 06, 2005 at 22:44 UTC
    Very good points, Eimi Metamorphoumai! I didn't think of the potential grep problem when posting my reply...
    _______
    Code is untested unless explicitly stated
    mlh2003