######untested code #should be close in theory though #!/usr/bin/perl -w use strict; my $keyword=''; my %file_hash=(); while(<>) { chomp; next if (/^\;/); if ( /\*/) { $keyword=(split /\*/)[1]; } if ($keyword ne "END") { push @{$file_hash{$keyword}},$_; } } foreach my $line (@{$file_hash{'DESCRIPTION'}) { #do what ever you want with each line that falls in # the description block print "$line\n"; }