perl - 是否有理由在 Perl 中使用 open(...) 的双参数形式?

标签 perl

是否有任何理由在 Perl 中使用 open(...) 的两个参数形式而不是三个或更多参数版本?

我能想到的唯一原因是明显观察到双参数形式更短。但假设冗长不是问题,还有其他原因会让您选择 open(...) 的双参数形式吗?

最佳答案

一个和两个参数的 open 应用任何由 -C 开关或 open pragma 指定的默认层。三arg开放没有。在我看来,这种功能差异是选择一个或另一个的最有力理由(选择将根据您打开的内容而有所不同)。哪个最简单或最具描述性或“最安全”(您可以安全地使用带任意文件名的双参数打开,只是不那么方便)在模块代码中退居二线;在脚本代码中,您可以更自由地选择是否支持默认图层。

此外,Damian Conway 的文件 slurp 运算符需要一个参数打开

$_ = "filename";
$contents = readline!open(!((*{!$_},$/)=\$_));

关于perl - 是否有理由在 Perl 中使用 open(...) 的双参数形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1806333/

相关文章:

perl - 如何正确调用需要 2 个子程序引用的子程序?

regex - Perl:通过搜索和替换解析 Excel

xml - 我如何在 perl 中解析 xml 网页

perl - 由于 'make test' 挂起,无法安装 Image::ExifTool

arrays - perl - 尝试根据值对 'hashes' 数组进行排序

使用映射的 Perl 数组和哈希操作

perl - perl 中的 SHA256 摘要

windows - 在 Windows 上捕获 SIGINT(和其他信号)

regex - Perl:为什么 eval '/(...)/' 不设置 $1?

perl - 如何让每个人都能从任何地方执行 Perl 脚本?