考虑到对性能/时间的影响等,以下哪项是编写代码的更好方法 - (以下是伪代码,请忽略语法问题。这里的想法是了解在什么情况下使用数组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
}
答案 0 :(得分:0)
这取决于你将在这些潜艇
中做什么第一个例子在给定的形式中没有意义(在数组上做一些操作!你需要具体)。
如果你按顺序处理东西,从头到尾,使用文件迭代器而不是将其插入内存是有意义的,因为通过这种方式,你将不会使用尽可能多的系统内存和perls缓冲将处理读取从文件中以相对有效的方式。
除非您无法避免,否则您应始终逐行处理文件 。
只要你需要在行之间来回转换,然后在文件中向后跳转,那么将整个文件读入内存的第一种方法会使算法更容易编写(以某些系统内存为代价) 。
如果系统内存不足并且您可以在内存中交换一些时间,请查看Tie::File,这样您就可以像访问内存中的数组一样访问磁盘上的文件。