in reply to @ARGV and glob

But I cannot find reference for this behavior.

As Corion said, this is a feature of the shell. See for example "Filename Expansion" (and the following "Pattern Matching") in the Bash Reference Manual; of course there are lots of other shells, but the basic behavior of * and ? are pretty much the same almost everywhere.

Under Windows, you can use Win32::Autoglob to emulate this behavior.