An analogy would be the way a shell finds a program based on the value of the PATH environment variable.
asdfgroup's remarks noted.
my $target = 'foo.txt'; my $file = do { my $target = undef; foreach my $dir( qw{ /tmp /var/tmp /foo /bar } ) { my $t = "$dir/$target"; # nb: you might want to use -e here # but -f might be what you *really* want, YMMV if( -f $t ) { $target = $t; last; } } $target; }; if( $target ) { open IN, $target or die "Cannot open $target for input: $\n"; # ... } else { die "Can't find $target.\n"; }
In reply to Find a file in a list of directories by grinder
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |