在下面的代码中,<*>
命令到底是做什么的?
my @usbHddFileList = <*>;
foreach $usbHddFile (@usbHddFileList)
{
system("rm -f $curMountDir/$usbHddFile < /dev/null > /dev/null 2>&1");
}
答案 0 :(得分:9)
这是一个glob。根据{{3}}:
如果尖括号内的内容既不是文件句柄也不是文件句柄 包含文件句柄名称,typeglob或的简单标量变量 typeglob引用,它被解释为文件名模式 globbed,以及文件名列表或下一个文件名 返回列表,具体取决于上下文。这种区别是确定的 仅凭句法理由。
答案 1 :(得分:5)
<>
表示readline(ARGV)
<IDENTIFIER>
表示readline(IDENTIFIER)
<$IDENTIFIER>
表示readline($IDENTIFIER)
<...>
(其他任何内容)表示glob(qq<...>)
因此<*>
表示glob(qq<*>)
或glob('*')
。
glob
用于从模式生成许多字符串或文件名。
在列表上下文中,<*>
aka glob('*')
将返回当前工作目录中除名称以.
开头的文件之外的所有文件。