- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑这两个片段:
#!/bin/bash/perl
open(DATA,"<input.txt");
while(<DATA>)
{
print($_) ;
}
和
$abcd = `cat input.txt`;
print $abcd;
两者都会打印
文件input.txt
的内容作为输出
问题:是否有任何标准,关于哪一个(反引号或native-method)应该优先于另一个,在任何特定情况或两者总是相等的??
我问这个问题的原因是因为我发现 cat
方法比使用原生 perl 方法打开
文件更容易,所以,这让我怀疑如果我可以通过反引号方式实现某些目标,我应该继续使用它还是更喜欢其他本地方式来做这件事!!
我也检查了这个线程: What's the difference between Perl's backticks, system, and exec? 但它的路线与我的怀疑不同!!
最佳答案
尽可能使用内置函数:
它们更便携:open
可以在 Windows 上运行,而 `cat input.txt`
则不能。
它们的开销较小:使用反引号会 fork 、执行一个解析命令的 shell,该命令会执行 cat
程序。这不必要地加载了两个程序。这与作为内置 Perl 函数的 open
形成对比。
它们使错误处理更容易。 open
函数将在出错时返回一个 false 值,这允许您采取不同的操作,例如比如用错误信息终止程序:
open my $fh, "<", "input.txt" or die "Couldn't open input.txt: $!";
它们更灵活。例如,如果您的数据不是 Latin-1 文本,您可以添加编码层:
open my $fh, "<:utf8", "input.txt" or die "Couldn't open input.txt: $!";
open my $fh, "<:raw", "input.bin" or die "Couldn't open input.bin: $!";
如果你想要一个“只将这个文件读入一个标量”的函数,请查看 File::Slurp
模块:
use File::Slurp;
my $data = read_file "input.txt";
关于perl - 反引号与 PERL 中的本地做事方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22168505/
MDC 表示要这样做,但也表示他们认为这只是一个 FireFox 扩展: 实时代码:http://jsfiddle.net/vQsUX/ try { throw("InvalidNameExc
有谁知道您可以使用哪种编程语言: when( expression ){ do stuff } 它应该在某个数组中注册表达式和代码块,然后由后台线程每 Q 毫秒/微秒/纳秒解析一次,并且对于每个计算结
我有一个正在单元测试的应用程序。在正常使用情况下,App Delegate 会设置并开始运行。然而,当我运行我的单元测试时,我希望 App Delegate 不做太多事情,如果有的话。我将如何着手完成
这个想法基本上是用自定义功能扩展一些存储库。所以我得到了这个设置,它确实有效! @MappedSuperclass abstract class MyBaseEntity { @Id
我是一名优秀的程序员,十分优秀!