#!/usr/bin/perl use strict; use warnings; { local $/; open DATA, '<',"san.txt" or die $!; my @blocks = map { [ split /\n/ ] } ( split /(?=ITEM NO:)/, ( map { s/#.*?\n//sg; $_ } )[0] ); close DATA; for(@blocks){ my @array = @$_; unless(@array){ print "There is no item remaining in the file"; last; } print "@array\n"; } }