At 5.48 -0600 2000.03.23, David Steffen wrote: >Howdy! > > I'm thinking about various ways that STDOUT can be redirected in >MacPerl. What I know about is: > >1) To a file >2) To a socket >2) To '>Dev:Printer', via a PAP connection (whatever that is). >3) To '>Dev:Console:WindowName' > > Is that all there is? > > In Unix perl, one can redirect to any pipe, e.g. any other program >on the computer, but that doesn't, in general work with a Mac. It can work with ToolServer, though, I am thinking. >Would >the socket family PPC Toolbox substitute for this in some general and >limited way using Apple Events? > I was thinking it would be nifty to be able to redirect STDOUT to a >Perl function, but as I think about it and look through my books, I >don't see that as an option. Am I right? I am not sure what you mean by this, but perhaps I do. You can tie a filehandle, capture printed output and do something with it later: package Redirect; sub TIEHANDLE { my $fh = []; bless $fh, __PACKAGE__; } sub PRINT { my $fh = shift; push @$fh, @_; } package main; use Data::Dumper; my $stdout = tie *STDOUT, 'Redirect'; print @INC; # STDOUT is closed, print to STDERR print STDERR Dumper($stdout); __END__ You could also do something like this, passing a callback thingy to the tie: package Redirect; sub TIEHANDLE { my($pkg, $code) = @_; my $fh = $code; bless $fh, $pkg; } sub PRINT { my $fh = shift; $fh->(@_); } package main; my $realstdout = *STDOUT; my $stdout = tie *STDOUT, 'Redirect', \&process; print join "\n", @INC; sub process { for (@_) { s/(.)/ $1/g; } print $realstdout @_; } __END__ -- Chris Nandor | pudge@pobox.com | http://pudge.net/ Andover.Net | chris.nandor@andover.net | http://slashcode.com/ # ===== Want to unsubscribe from this list? # ===== Send mail with body "unsubscribe" to macperl-request@macperl.org