Somewhere it says "the file handle for print must be a real filehandle not a reference to one".  Apparently, the object itself (that is
) is being passed to print instead of being evaluated first like the arguments in a list being passed to a function would be.  This has to do with the whole indirect-object-notation semantics (that is a first argument with no comma after it).