#!/usr/bin/perl use warnings; use strict; my @hold; my @data; while ( my $line = ){ chomp $line; if ( $line =~ /NIL$/ || $line !~ /\w+/ ){ if ( scalar @hold > 1 ){ push @data, [ @hold ]; } undef @hold; next; } push @hold, $line; } for my $block ( @data ){ for my $entry ( @{ $block } ){ print "$entry\n"; } print "\n"; }