use strict; use Text::CSV_XS; my @data; my $count = 0; input (); my @attrs_stop = qw( _status _gwname _ac_ID_field); my @attrs_attempt = qw( _status _gwname _ac_ID_field); sub input { my $csv = Text::CSV_XS->new; while ( ) { chomp; next if /^START/; $count++; $csv->parse($_); my @fields = $csv->fields; my %rec; my @attrs_results; if (/^STOP/) { @attrs_results = @attrs_stop; } else { @attrs_results = @attrs_attempt; } @rec{@attrs_results} = @fields; push @data, \%rec; } } foreach my $info (@data) { print "$info->{_status}\n"; } print "There were $count calls\n"; __DATA__ adfadfasdfadsf,"adsf,asdf,adsf",adfasdf adsfasdfasdfasdf,asdfasdfasdf,adsfasdf adsfasdf,"adsf,adsf",adsfadsf "asdfasdf,asdfasdf",adfasdf,asdfasdf