>>885
perldoc -f openより:

If FILEHANDLE is an undefined scalar variable (or array or hash
element) the variable is assigned a reference to a new anony-
mous filehandle, otherwise if FILEHANDLE is an expression, its
value is used as the name of the real filehandle wanted. (This
is considered a symbolic reference, so "use strict 'refs'"
should not be in effect.)

undefかそうでないかで動作が違うのはそういう仕様だってことだ。