my $str = "0010+2+O?'Reilly'"; my @field = map {s/\?'/'/g; $_ } split /\+/ , substr($str,0, (length $str) - 1); print "[$_]$field[$_]\n" for 0 .. $#field;