sub open_new { my ( $filename ) = @_; open my $fh, '<', $filename or die "Can't read '$filename': $!"; return $fh; } push @filestack, open_new( 'test1.txt' ); push @filestack, open_new( 'test2.txt' );