#!/usr/bin/perl -Tw
use strict;
use Text::ParseWords;
my $fname = "CommaSample.dat";
my $pretty = 1;
BARE: {
####
my ($toggle, @data) = ('');
####
open FH, "< $fname" or die "Cannot open datfile: ", $!;
####
while () {
$toggle = 1, next if /^"PER"\s*$/;
$toggle = 0, next if /^"EMP"\s*$/;
last if /^"EOS"\s*$/;
####
die "Unknown or missing record tag: Got $_ on line $., datafile $fname.$/" if $toggle eq '';
####
chomp;
@data = "ewords('\s+', 0, $_);
print "Entity = $data[0]$/";
if ($toggle) {
####
print "Name = $data[1]$/";
print "Color = $_ $/" for split /\s*,\s*/, $data[2];
print "Date = $data[3]$/";
}
else {
####
print "Employment = $data[1]$/",
"Job Title = $data[2]$/",
"Hire Date = $data[3]$/",
"Location = $data[4], $data[5] $data[6]$/",
"Salary = $data[7]$/";
}
####
$toggle = '';
print $/ if $pretty;
}
####
print $/;
}