perl - glob ('foo*' ) 相对于 <foo*>​​ 的比较优势是什么?

标签 perl glob

我只是在看 Can someone tell me how to create an array of directory contents? .不出所料,提供了文件 globs 作为答案。令我惊讶的是,该帖子推荐使用 glob() 而不是 <*> .

我用 <*>因为那是我很久以前学到的东西,从来没有想过。这不是一个很好的理由。

您更喜欢使用什么语法进行通配,为什么?

最佳答案

个人认为<>严重重载。它有点意思是“从迭代器读取”,但是在确定哪种迭代器适合我的口味时,它有点过于神奇和微妙。例如<$foo><$foo{bar}>意味着非常不同的东西,和神奇的裸<>意味着不同的东西。

我更喜欢使用 glob并保留 <>句柄的语法。这样做可以省去确定 <> 的内容是否正确的认知负担。是一个模式而不是一个句柄(或解析为一个的东西)。也就是说,如果你在心理上联想到 <>与“迭代器”而不是“读取”的表示法相比,您可能更喜欢函数式语法——至少对于那些您想要跳过结果而不是生成列表的情况。

关于perl - glob ('foo*' ) 相对于 <foo*>​​ 的比较优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087981/

相关文章:

python - 如何使用 pathlib.Path().glob() 读入文件并将具有相同文件名的文件输出到另一个子文件夹

arrays - 为什么这个随机哈希值选择器在第一次被调用时总是返回相同的值?

mysql - 像 £(英镑)这样的拉丁字符编码在使用 perl 脚本编码后会抛出垃圾值

xml - 我用什么将 CSV 数据显示为图表?

bash - 在 Bash 中通配重音文件

Linux Glob 模式删除所有包含 '?' 的文件?

regex - 大文件中带有反向引用的多行搜索

perl - 有没有办法比较模板工具包中的两个变量?

python - 如何在目录中的所有 csvs 文件中执行 python 关键字搜索和单词计数器并写入单个 csv?

node.js - npm 安装失败,错误代码为 "Cannot find module ' glob'"