(Name|Age|Gender) \s+ = \s+ ( \S+ )
####
#!/usr/bin/env perl -l
use strict;
use warnings;
use Text::CSV;
my @terms = qw{Name Age Gender};
my $re = '(' . join('|', @terms) . ') \s+ = \s+ ( \S+ )';
my $csv = Text::CSV->new();
while (my $row = $csv->getline(\*DATA)) {
print "*** $row->[0] ***";
for (@$row) {
print "$1: $2" while /$re/gx;
}
}
__DATA__
Person1, Name = Lydia, Age = 20, Gender = F
Person2, Name = Carol, Age = 54, Profession = Student, Gender = F, Height = 4'8
Person3, Name = Andy, Age = 37, Location = USA, Gender = M, Weight = 117
Person4, Name = Nick, Age = 28, Gender = M
####
*** Person1 ***
Name: Lydia
Age: 20
Gender: F
*** Person2 ***
Name: Carol
Age: 54
Gender: F
*** Person3 ***
Name: Andy
Age: 37
Gender: M
*** Person4 ***
Name: Nick
Age: 28
Gender: M