while (<>) { my %params = map { my ($k,$v) = split /\s*=\s*/; $v =~ /(.+)\s+\((.+)\%\)/; ($k => [$1,$2]) } split /\s,\s*/; }