1
9
关于操纵@ARGV的主题——这绝对是有效的代码,Perl当然允许您这样做。但我认为这不是一个好的编码习惯。我所看到的大多数使用“while(<)”习惯用法的代码都是使用它来读取标准输入,而这正是我最初希望您的代码能够做到的。更具可读性的模式可能是单独打开/关闭每个输入文件:
这对我来说会更容易理解,尽管它只需要几行代码。Perl为您提供了很大的灵活性,但我认为这使得用Perl开发自己的风格变得更加重要,这种风格对您(以及您的同事,如果这对您的代码/职业生涯很重要的话)来说是可读和可理解的。 将子例程放在主函数或子例程中也是一个风格上的决定,您应该仔细考虑。现代计算机在这方面的速度如此之快,以至于样式和可读性对于这样的脚本来说更为重要,因为您不太可能遇到这样的情况,即这样的脚本会对您的硬件造成过大的负担。 祝你好运Perl很有趣。:)
当我写“你不太可能遇到这样一个脚本对你的硬件征税过多的情况”的时候,我的意思就是要涵盖这一点,抱歉没有说得更具体。此外,谁还有4GB硬盘,更不用说4GB了 ? :P 另一个编辑:在阅读了互联网上的评论后,我意识到有比4GB大得多的硬盘可供购买。我感谢评论者指出这一点,并承诺今后永远不会- 曾经 |
2
3
我更喜欢这个更清晰易懂的版本:
但操纵也可以
|
3
1
是的,可以在启动'
无论代码是在子例程中还是在“主函数”中,都没有任何区别。 |
4
1
前面的答案很好地涵盖了主要的Perl编程问题。
比如说,根据操作系统的不同,调用专门的外部程序可能是有意义的
在unix上。 根据您需要对包含模式的文件执行什么操作,以及命中/未命中率有多大,这可能会节省大量时间(并重新使用经过验证的代码)。 |
5
0
您可以通过选中来获取当前文件的文件名
您可能没有意识到这一点,但实际上您正在影响两个全局变量,而不仅仅是
您可以使用
顺便说一句,还有另一个重要的,微妙的魔术
警告
使现代化
:使用的原因
在创建新变量并使用它们的一般情况下,
此简短脚本演示了本地:
|
7BeholdeR7 · 文件夹的重量超过其中的文件(六倍) 2 年前 |
ilteris · 为什么程序在fscanf后崩溃 2 年前 |
Peaceful · 使用fscanf读取C中具有未知行数的文件 2 年前 |
NOCi · 如何将Tensorflow的结果记录到CSV文件 2 年前 |
Oakzeh · 如何在字符串索引之前读取文件并删除字符 2 年前 |