my %hash; for (@array) { if (/^([^,]+)(?:,(.*))?$/) { $hash{$1} = $2; } }