in reply to strict subs and bareword exceptions

# prints 'nono1', so '=>' seems to be interpreted as '.' print nono => "1";
Not quite. Consider   print qw(nono 1); It's more the case that '=>' is a special case of ',' that forces the left-hand side to be a string, even though it looks like a bareword.