Each production returns the result of its last rule, so

 character: /\w/ {print "Character: $item[1]\n"}

returns the result of the { print ... } action. You want

 character: /\w/ { print "Character: $item[1]\n" } { $item[1] }

Of course, it doesn't make much sense to print in a production 
the parser might backtrack through the production.  
