On Wed, May 04, 2005 at 08:47:17AM -0400, Aaron Sherman wrote: > I would expect "open" to be a bit of an anachronism in P6, but still > used fairly often. For the most part, I would expect that: > > my IO $read_fh = '/some/path' => 'r'; # Get an IO::File (is IO) > my IO $write_fh = '/other/path' => '>'; # Get IO::File > my IO $pipe_fh = 'program args' => $IO::ReadPipe; # Get IO::Pipe > my IO $sock_fh = 'http://www.perl.org/' => $IO::URI; # Get IO::Socket > > would just DWIM. But, perhaps I'm expecting too much...
Ah yes, that's another thing I was wondering about: what does opening a pipe return. If it's a one-way pipe, okay, this may be a single handle; but for bidirectional opens, we need $in, $out, and $err handles; and even in the simple unidirectional case, where does the Process handle go?[1] In the glorious OOP version of these builtins, IO can encasulate the three handles, plus the process handles. But if we are to provide a pipe1 builtin, it can return a single handle (and not the pid, unless we return a list or use OUT variables (yech)). Should we provide further procedural interfaces for pipe2 and pipe3? [1] "Process handle" encapsulates unix pid / win32 process handle. -- Gaal Yahas <[EMAIL PROTECTED]> http://gaal.livejournal.com/