use strict; use warnings; my %tags; my $printing; while (defined (my $line = ) || defined $tags{IT}) { if (defined $line) { my ($tag) = $line =~ /^{(\w+)}/; if (! $tag) { print $line if $printing; next; } $printing = $tag =~ /^(TAG|ID)$/; if ($tag ne 'IT') { ++$tags{$tag}; next; } } print $tags{IT} if (! $tags{LINE} || ! $tags{ID}) && defined $tags{IT}; %tags = (IT => $line); } __DATA__ {IT} 343 1 {DATE} 090104 {LINE} LEGISLATORS VISIT SENIOR APARTMENT COMPLEX {TAG} 1lutherridge0104.ART {ID} 234 {IT} 434 2 {DATE} 090104 {LINE} LEGISLATORS VISIT SENIOR APARTMENT COMPLEX #### 1lutherridge0104.ART 234 {IT} 434