#!/usr/bin/perl -w use strict; open(OUT, ">/Users/micwood/Desktop/output.csv"); my $awardhashref= (); my $allDocs = do { local $/ = '
\r'; <>; }; my $rxExtractDoc = qr {(?xms) (

Award\s\#(\d+)(.*?)
) }; while ($allDocs =~ m{$rxExtractDoc}g ) {my %award = (); # award hash $award{'record'}= $1; $award{'A_awardno'}= $2; $award{'entireaward'}= $3; $award{'entireaward'}=~ s/\t//g; $award{'entireaward'}=~ s/\r//g; if ($award{'entireaward'} =~ m{Dollars Obligated(.*?)\$([^<]+?)<}gi){ $award{'B_dollob'} = $2}; if ($award{'entireaward'} =~ m{Current Contract Value(.*?)\$([^<]+?)<}gi){ $award{'C_currentconvalue'} = $2}; #### print qq{Award Number: $award{'A_awardno'}\n}, qq{Dollars Obligated: $award{'B_dollob'}\n}, qq{Current Contract Value: $award{'C_currentconvalue'}\n}, qq{Ultimate Contract Value: $award{'D_ultconvalue'}\n}, qq{Contracting Agency: $award{'E_conagency'}\n}, q {-} x 25, qq{\n}; delete $award{'entireaward'}; delete $award{'record'}; foreach my $key (sort keys %award){ print OUT '"' . $award{$key} . '",'}; print OUT"\n"; $awardhashref= \%award; } my @thekeys = sort keys %$awardhashref; $, = ","; print (@thekeys, "\n"); print OUT (@thekeys, "\n"); close OUT;