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