Если INP1
подключен к обычному файловому дескриптору (не дескриптору сокета или дескриптора канала), вы также можете seek
вернуться к началу файла.
while(<INP1>) {
...
}
seek INP1, 0, 0;
# do it again
while (<INP1>) {
...
}
Другой вариант - один раз загрузить весь файл в массив, а затем перебирать этот массив так часто, как вы пожелаете.Это хорошая идея, если весь файл удобно помещается в памяти и содержимое файла не будет меняться между обходами.
open INP1, '<', $the_file;
@INP1 = <INP1>;
close INP1;
foreach (@INP1) {
...
}
# do it again
foreach (@INP1) {
...
}