If my C memory can come back to me I remember a spiffy trick was to unroll loops. Right now you are doing a foreach, try something like this.
sub Which($) { my $Filename=shift; my @Arr = ( split /\:/,$ENV{PATH} ) for(my $i = 0; $i <= #$Arr; $i += 2) { return "$Arr[$i]/$Filename\n" if ( -e "$Arr[$i]/$Filename" ); return "$Arr[$i+1]/$Filename\n" if ( -e "$Arr[$i+1]/$Filename" ); }; }
This code's sorta ugly but you get the picture I'm sure, have it check 3 or 4 at a time and you'd be amazed how much faster it will run.
Edit Petruchio Wed May 22 02:05:51 UTC 2002 - Added code tags, other markup.
In reply to Re: Which
by Anonymous Monk
in thread Which
by ChOas
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |