http://www.perlmonks.org?node_id=1009962


in reply to tripping over filehandle / subroutine usage

just a guess:

if your FH is at EOF after the first subroutine you should reset the position to start using seek before expecting to read again in another sub.

UPDATE:

ok, now that you updated code it seems like my guess was right:

my @rows = (<$input_handle>);

exhausts your filehandle.

BTW you should consider working with something like

while ( my $line = <$input_handle>) {
to read line by line, when working with large files, because otherwise you're consuming lots of RAM.

Cheers Rolf