This snippet searches a series of directories for a file. For instance, you
may want to open the file 'foo.txt', but it could be in any one of a number
of directories, so you want to search them one after the other until you find it.
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";
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|