#!/usr/bin/perl -w use strict; use Data::Dumper; my $rawdata = qq| ~ItemName1~ItemName2~ItemName3~ItemName4~ItemName5~ ~Apple~Orange~Banana~Pear~Watermelon~ ~Blue~Red~Yellow~Brown~Purple~ ~Uno~Dos~Tres~Cuatro~Cinco~ |; my @datalines = split("\n",$rawdata); my @listings; my $header; foreach my $line (@datalines) { if ($line =~ /^(.+)<\/COLUMNS>/xg) { $header = $1; } elsif ($line =~ /^(.+)<\/DATA>/xg) { push(@listings, $1); } } print Dumper(\$header); print Dumper(\@listings);