in reply to How to read lines from a file which is....

Juerd solution is a good one
But if you want an easier to understand
solution you could use good old fashion
flag variables

#!/usr/bin/perl -w use strict; my (@desc, @data); my $pushOnToDescFlag = 0; my $pushOnToDataFlag = 0; while (<DATA>){ if (/^Description:$/){ $pushOnToDescFlag = 1; next; } if (/^Data:$/){ $pushOnToDescFlag = 0; $pushOnToDataFlag = 1; next; } if ( $pushOnToDescFlag == 1 ) { push( @desc,$_); } if ( $pushOnToDataFlag == 1 ) { push( @data,$_); } } foreach my $d (@desc) { print "Desc = $d"; } foreach my $d (@data) { print "Data = $d"; } __DATA__ Description: yada_d1 yada_d1 yada_d1 yada_d1 Data: yada_d2 yada_d2 yada_d2 yada_d2

... I believe to be a matter of style
and what is more important to you
Streamline code vs. readability
IMHO