如何使用搜索路径(例如$path)在Perl中打开文件



我有一种情况,我正在用Perl从文件中读取文件名。这些文件名从来没有关联过目录,只有一个文件名(例如"foo.bar")。我需要在相当于gmake的VPATH(或shell的PATH)中搜索该文件。

我想我可以在冒号处拆分PATH,将每个段连接到文件中,看看它是否存在。有没有更简单的方法可以做到这一点?

里面有什么不舒服的地方?

#! /usr/bin/perl
use warnings;
use strict;
use List::Util qw{ first };
sub find_in_path {
my $file = shift;
return first { -f } map "$_/$file", split /:/, $ENV{PATH}
}
print find_in_path('grep'), "n";

最新更新