$ perl -wMstrict -MO=Deparse -e 'sub x { foo bar }' BEGIN { $^W = 1; } use strict; sub x { 'bar'->foo; } -e syntax OK $ perl -wMstrict -MO=Deparse -e 'sub x { foo bar quz }' Bareword "quz" not allowed while "strict subs" in use at -e line 1. -e had compilation errors. BEGIN { $^W = 1; } use strict; sub x { 'bar'->foo('quz'); } $ perl -wMstrict -MO=Deparse -e 'sub x { foo bar quz baz }' BEGIN { $^W = 1; } use strict; sub x { 'bar'->foo('baz'->quz); } -e syntax OK $ perl -wMstrict -MO=Deparse -e 'sub x { foo bar quz baz bleep }' Bareword "bleep" not allowed while "strict subs" in use at -e line 1. -e had compilation errors. BEGIN { $^W = 1; } use strict; sub x { 'bar'->foo('baz'->quz('bleep')); }