2011-05-05 5 views
2

내가 처리해야하는 4GB 파일이 있다고 가정하면, 실제 배열/메모리에 복사하지 않고 배열처럼 filehandle을 참조 할 수있는 Perl의 방법이 있습니까? 같은FileHandle을 배열로 참조하기

뭔가 :

open (LOG, "less file.txt |"); 
my @reference = \<LOG>; 
print $reference[1000000]; 
close LOG; 

가 감사합니다!

답변

7

Tie::File을 사용하십시오.

use Tie::File; 
tie my @array, 'Tie::File', $filename or die "tie $filename: $!"; 

print $array[42]; 
+0

흠, 전체 파일의 내용은 필요 없습니다. 내가 그것을 읽기 전에 grep과 awk를 써야만합니다. – Funguf

+0

왜 grep과 awk를 Perl로 작성하지 않았습니까? – friedo

+0

사실, 나는 그것을 줄 것이다! 모두에게 감사드립니다. – Funguf