Looks like your input file is a CSV (comma separated variable) file so you should use an appropriate CVS module to dot he heavy lifting for you. Text::CSV is a good starting point. Consider:
use strict; use warnings; use Text::CSV; my $filename = 'infos.txt'; open my $fOut, '>', $filename or die "Can't create $filename: $!"; print $fOut <<TEST; Mawts 25,female,melbourne Awts 24,male,sydney TEST close $fOut; my $parser = Text::CSV->new(); open my $fIn, '<', $filename or die "Can't open $filename: $!"; while (my $row = $parser->getline($fIn)) { my ($name, $age) = $row->[0] =~ /(.*)\s(\d+)/; print "Name: $name\n"; print "Age: $age\n"; print "Gender: $row->[1]\n"; print "Address: $row->[2]\n\n"; } close $fIn;
Prints:
Name: Mawts Age: 25 Gender: female Address: melbourne Name: Awts Age: 24 Gender: male Address: sydney
In reply to Re: Splitting multiple patterns
by GrandFather
in thread Splitting multiple patterns
by astronogun
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |