Perl使用数组vs文件

时间:2017-11-17 18:28:24

标签: perl

考虑到对性能/时间的影响等,以下哪项是编写代码的更好方法 - (以下是伪代码,请忽略语法问题。这里的想法是了解在什么情况下使用数组vs文件) 案例1 ::

@array; # globally accessible
sub 1 {
    #some operations on @array
}
.
.
.
sub 2 {
    #print @array info
}

案例2 ::#不使用数组,使用文件

 sub 1 {
   #open file1
    #write to file1
    #close file
} 
.
.
.
sub 2 {
    #open file1
    #read file1
    #print file1 info
    #close file1
}

1 个答案:

答案 0 :(得分:0)

这取决于你将在这些潜艇

中做什么

第一个例子在给定的形式中没有意义(在数组上做一些操作!你需要具体)。

如果你按顺序处理东西,从头到尾,使用文件迭代器而不是将其插入内存是有意义的,因为通过这种方式,你将不会使用尽可能多的系统内存和perls缓冲将处理读取从文件中以相对有效的方式。

除非您无法避免,否则您应始终逐行处理文件

只要你需要在行之间来回转换,然后在文件中向后跳转,那么将整个文件读入内存的第一种方法会使算法更容易编写(以某些系统内存为代价) 。

如果系统内存不足并且您可以在内存中交换一些时间,请查看Tie::File,这样您就可以像访问内存中的数组一样访问磁盘上的文件。