in reply to Trying to split on '?'

split splits on a pattern, even if you use double or single quotes. try:
($1, $2, $3) = split /\?/;
tstock