in reply to different outputs for array print

Because the context is different.
$ perl -le"print for @ARGV" a s d f a s d f $ perl -le"print for 0+@ARGV" a s d f 4 $ perl -le"print for scalar @ARGV" a s d f 4
Context tutorial