什么< *> Perl意味着什么?

时间:2015-12-22 17:58:48

标签: perl

在下面的代码中,<*>命令到底是做什么的?

my @usbHddFileList = <*>;
foreach $usbHddFile (@usbHddFileList)
{
    system("rm -f $curMountDir/$usbHddFile < /dev/null > /dev/null 2>&1");
}

2 个答案:

答案 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('*')将返回当前工作目录中除名称以.开头的文件之外的所有文件。