in reply to Re^4: "Pro Perl's" Redirecting Filehandles - Unexpected Result (why)
in thread "Pro Perl's" Redirecting Filehandles - Unexpected Result
">&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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: "Pro Perl's" Redirecting Filehandles - Unexpected Result (why)
by ack (Deacon) on Feb 28, 2008 at 20:23 UTC |