2011-05-05 4 views
2

Учитывая, что у меня есть файл размером 4 ГБ, мне нужно обработать, есть ли способ в 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