in reply to strict subs and bareword exceptions


My question is, why is the assignment operator '=>' in the first 'print' statement here interpreted as a dot and not as a comma.

It isn't. It is being interpreted as a comma that quotes the string on its left hand side. B::Deparse shows what going on:

perl -MO=Deparse -e 'print nono => "1";' print 'nono', '1';
In the second example strict doesn't care about the bareword nono (see below). Nevertheless, this would generate a warning with -w.

In the last example the bareword looks like a filehandle. And since a filehandle shouldn't have a comma after it in a print statement the compiler, not strict, rejects it.

--
John.