可能重复:
与-e匹配的文件名和perl中的正则表达式.
对于前
if(-e/home/tree/a*){print"file found"}
如何在文件测试操作符上使用正则表达式
您不能在文件存在测试运算符上使用正则表达式.
如果要使用正则表达式检查存在的文件名,则必须使用eg readdir或glob(请注意glob具有轻量级语法</home/tree/*>)检索文件列表,然后使用正则表达式对其进行过滤.
请注意,在您的情况下,您使用的"表达式" /home/tree/a*可以解释为glob模式而不是正则表达式.如果这是你想要的,你可以直接使用glob,如:
if ( () = </home/tree/a*> ) { print "file found" }
Run Code Online (Sandbox Code Playgroud)
有关为何/如何不用glob作测试条件的讨论,请参阅注释.