use strict; while (my $line = ) { chomp $line; my %vals = ($line =~ m{(\w+)=([^,]*)}g); print "one: $vals{one}, two: $vals{two}, three: $vals{three}, four: $vals{four}, five: $vals{five}\n"; } 1; __DATA__ one=1,two=2,three=3,four=4,five=5 one=1,three=3,five=5