如何测试Perl中是否存在与模式匹配的文件名?

Jea*_*ean 15 perl glob file exists match

我可以在Perl中做这样的事情吗?意义模式匹配文件名并检查它是否存在.

    if(-e "*.file")
    {
      #Do something
    }
Run Code Online (Sandbox Code Playgroud)

我知道要求系统列出存在的文件的更长的解决方案; 将其作为文件读取,然后推断文件是否存在.

mea*_*gar 33

您可以使用glob返回与模式匹配的所有文件的数组:

@files = glob("*.file");

foreach (@files) {
    # do something
}
Run Code Online (Sandbox Code Playgroud)

如果您只是想知道是否存在与模式匹配的文件,则可以跳过赋值:

if (glob("*.file")) {
    # At least one file matches "*.file"
}
Run Code Online (Sandbox Code Playgroud)

  • 为了完成,你可以做`foreach(glob("*.file")){something}`以及...... (6认同)