Depending on the input data (if inconsistent)
this might happen but doesnt't do any harm
to the whole thing
In order to sanitize the stuff, one has to check
for the existence of the second split field after
the ':'
Just by substitution of (split...)[1] with (split ...)[-1]
a workaroud is found %cp_samp = map{ (split ':')[0], [split ',', (split ':')[-1] ] }@ex_array; (corrected, see below ... sorry)