">&STDOUT" is interpretted as ">& STDOUT" while "> &STDOUT" means something quite different. That is
open SAVEOUT, ">&STDOUT" # is the same as open SAVEOUT, ">& STDOUT" # is the same as open SAVEOUT, ">&", STDOUT
They all make SAVEOUT point to whatever output destination that the STDOUT file handle already points to. This is what the author was trying to teach you despite how it appeared in print. But
open SAVEOUT, "> &STDOUT" # is the same as open SAVEOUT, ">", "&STDOUT"
They both (try to) create a file called "&STDOUT" and have nothing to do with the STDOUT file handle.
The last example in each of those sets is different if you have a pretty old version of Perl that doesn't support "three-argument open", of course.
- tye
In reply to Re^5: "Pro Perl's" Redirecting Filehandles - Unexpected Result (why)
by tye
in thread "Pro Perl's" Redirecting Filehandles - Unexpected Result
by DarkLord1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |