Revision: 283
Updated Code
at July 9, 2006 21:11 by kkindoh
Updated Code
## Define three types printers: 1.Pipe to less, 2.Output to a file 3.Just print ## ## sub getLessPrinter { my $pout= IO::File->new( "| less" ) or croak "Failed to create less pipe\n"; return sub { my $line= shift; return $pout->print( $line ) if defined $line; $pout->close(); # undef to close } # closure } # getLessPrinter sub getFilePrinter { my $file= shift; my $fout= IO::File->new( "> $file" ) or croak "Failed to create file: $file: $!\n"; return sub { my $line= shift; return $fout->print( $line ) if defined $line; $fout->close(); # undef to close } # closure } # getFilePrinter sub getNoLessPrinter { return sub { my $line= shift; print $line if defined $line; } # closure } # getNoLessPrinter ## Then select one of the printer ## ## my $printer= getFilePrinter( "output.txt"); ## or ## my $printer= getNoLessPrinter(); ## or my $printer= getLessPrinter(); $printer->( "Something to print.\n"); $printer->( undef ); # to close the stream if needed.
Revision: 282
Updated Code
at July 9, 2006 21:10 by kkindoh
Updated Code
sub getLessPrinter { my $pout= IO::File->new( "| less" ) or croak "Failed to create less pipe\n"; return sub { my $line= shift; return $pout->print( $line ) if defined $line; $pout->close(); # undef to close } # closure } # getLessPrinter sub getFilePrinter { my $file= shift; my $fout= IO::File->new( "> $file" ) or croak "Failed to create file: $file: $!\n"; return sub { my $line= shift; return $fout->print( $line ) if defined $line; $fout->close(); # undef to close } # closure } # getFilePrinter sub getNoLessPrinter { return sub { my $line= shift; print $line if defined $line; } # closure } # getNoLessPrinter ## Then select one of the printer ## ## my $printer= getFilePrinter( "output.txt"); ## or ## my $printer= getNoLessPrinter(); ## or my $printer= getLessPrinter(); $printer->( "Something to print.\n"); $printer->( undef ); # to close the stream if needed.
Revision: 281
Updated Code
at July 9, 2006 21:09 by kkindoh
Updated Code
sub getLessPrinter { my $pout= IO::File->new( "| less" ) or croak "Failed to create less pipe\n"; return sub { my $line= shift; return $pout->print( $line ) if defined $line; $pout->close(); # undef to close } # closure } # getLessPrinter sub getFilePrinter { my $file= shift; my $fout= IO::File->new( "> $file" ) or croak "Failed to create file: $file: $!\n"; return sub { my $line= shift; return $fout->print( $line ) if defined $line; $fout->close(); # undef to close } # closure } # getFilePrinter sub getNoLessPrinter { return sub { my $line= shift; print $line if defined $line; } # closure } # getNoLessPrinter ## Then select one of the printer ## ## my $printer= getFilePrinter( "output.txt"); ## or ## my $printer= getNoLessPrinter(); ## or my $printer= getLessPrinter(); $printer->( "Something to print.\n"); $printer->( undef ); # to close the stream if needed.
Revision: 280
Updated Code
at July 9, 2006 21:09 by kkindoh
Updated Code
sub getLessPrinter { my $pout= IO::File->new( "| less" ) or croak "Failed to create less pipe\n"; return sub { my $line= shift; return $pout->print( $line ) if defined $line; $pout->close(); # undef to close } # closure } # getLessPrinter sub getFilePrinter { my $file= shift; my $fout= IO::File->new( "> $file" ) or croak "Failed to create file: $file: $!\n"; return sub { my $line= shift; return $fout->print( $line ) if defined $line; $fout->close(); # undef to close } # closure } # getFilePrinter sub getNoLessPrinter { return sub { my $line= shift; print $line if defined $line; } # closure } # getNoLessPrinter ## Then select one of the printer ## ## my $printer= getFilePrinter( "output.txt"); ## or ## my $printer= getNoLessPrinter(); ## or my $printer= getLessPrinter(); $printer->( "Something to print.\n"); $printer->( undef ); # to close the stream if needed.
Revision: 279
Updated Code
at July 9, 2006 12:54 by kkindoh
Updated Code
sub Line::getLessPrinter { my $pout= IO::File->new( "| less" ) or croak "Failed to create less pipe\n"; return sub { my $line= shift; return $pout->print( $line ) if defined $line; $pout->close(); # undef to close } # closure } # Line::getLessPrinter sub Line::getFilePrinter { my $file= shift; my $fout= IO::File->new( "> $file" ) or croak "Failed to create file: $file: $!\n"; return sub { my $line= shift; return $fout->print( $line ) if defined $line; $fout->close(); # undef to close } # closure } # Line::getFilePrinter sub Line::getNoLessPrinter { return sub { my $line= shift; print $line if defined $line; } # closure } # Line::getNoLessPrinter ## Then select one of the printer ## ## my $printer= getFilePrinter( "output.txt"); ## or ## my $printer= getNoLessPrinter(); ## or my $printer= getLessPrinter(); $printer->( "Something to print.\n"); $printer->( undef ); # to close the stream if needed.
Revision: 278
Updated Code
at July 8, 2006 13:28 by kkindoh
Updated Code
sub getLessPrinter { my $pout= IO::File->new( "| less" ) or croak "Failed to create less pipe\n"; return sub { my $line= shift; $pout->print( $line ); $pout->close() if $line =~ / BOTTOM /; } # closure } # getLessPrinter sub getFilePrinter { my $file= shift; my $fout= IO::File->new( "> $file" ) or croak "Failed to create file: $file: $!\n"; return sub { my $line= shift; $fout->print( $line ); $fout->close() if $line =~ / BOTTOM /; } # closure } # getFilePrinter sub getNoLessPrinter { return sub { my $line= shift; print $line; } # closure } # getNoLessPrinter ## Then select one of the printer ## my $printer= getLessPrinter(); $printer->( "Something to print.\n"); $printer->( "BOTTOM\n"); # print it and close it.
Revision: 277
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 8, 2006 12:59 by kkindoh
Initial Code
sub getLessPrinter { my $pout= IO::File->new( "| less" ) or croak "Failed to create less pipe\n"; return sub { my $line= shift; $pout->print( $line ); $pout->close() if $line =~ / BOTTOM /; } # closure } # getLessPrinter sub getFilePrinter { my $file= shift; my $fout= IO::File->new( "> ". Line::output() ) or croak "Failed to create file:". Line::output() .": $!\n"; return sub { my $line= shift; $fout->print( $line ); $fout->close() if $line =~ / BOTTOM /; } # closure } # getFilePrinter sub getNoLessPrinter { return sub { my $line= shift; print $line; } # closure } # getNoLessPrinter ## Then select one of the printer ## my $printer= getLessPrinter(); $printer->( "Something to print.\n"); $printer->( "BOTTOM\n"); # print it and close it.
Initial URL
Initial Description
Initial Title
Closure to change output
Initial Tags
Initial Language
Perl