#!/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 $/; }