#!/usr/bin/perl -w use strict; my $file = 'file.txt'; open (INPUT , '<' , $file) or die "Unable to open $file for reading : $!"; my %data; while ( ) { if ( /-- Name:/ || /-- TOYS:/ ) { chomp; my $key = /-- Name:/ ? 'name' : 'toys'; my @temp = split /\s+/; push @{ $data{$key} } , @temp[2 .. $#temp]; last if exists $data{name} && exists $data{toys}; } } for my $key ( qw(name toys) ) { print "$key :\n"; print "\t$_\n" for @{ $data{$key} }; } __END__ name : Menu toys : car monkey moon