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

时间:2015-05-12 19:51:17

标签: perl

我遇到的情况是我正在从Perl中的文件中读取文件名。这些文件名从不有一个与之关联的目录,只有一个文件名(例如" foo.bar")。我需要为该文件搜索相当于gmake的VPATH(或shell的PATH)。

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

1 个答案:

答案 0 :(得分:4)

它有什么不安?

#! /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";