It is in general not possible. I forget the exact logic,
but it is nasty enough that Perl can't figure out what you
mean and fails to figure it out.
The solutions are to either create a temporary variable or
to turn the print into a method call using IO::Handle. I
prefer using the temporary variable. YMMV.
Comment on Re (tilly) 1: print on a hash-stored-handle