in reply to How do I extract data?

Something like this would also do the trick.

If your record names are going to really be numeric in nature
there are advantages to storing the data in an array rather than a hash as shown here.

#!/usr/local/bin/perl -w use strict; use Data::Dumper; my %records; { local $/ = 'calendar: '; # record separator. while ( <DATA> ) { push( @{$records{$1}}, split(/\n+|calendar: /) ) if ( s/Calendar_([0-9]+)_test\n+// ); } } print Dumper( \%records ); __DATA__ calendar: Calendar_1_test 11/01/03 11/02/03 calendar: Calendar_2_test 01/02/03 01/04/03 calendar: Calendar_3_test 03/01/03 03/02/03

Outputs:

:!./test.pl $VAR1 = { '1' => [ '11/01/03', '11/02/03' ], '2' => [ '01/02/03', '01/04/03' ], '3' => [ '03/01/03', '03/02/03' ] };
Once the data has been parsed into the hash or array, you can simply access
the dates you want and print them to a file.

print FILE @{$records{1}}

Best Regards,
Wonko