File Coverage

blib/lib/IO/File/Multi.pm
Criterion Covered Total %
statement 38 58 65.5
branch 1 2 50.0
condition n/a
subroutine 12 22 54.5
pod 0 17 0.0
total 51 99 51.5


line stmt bran cond sub pod time code
1             # *|* PERL *|*
2             #
3             # Print to multiple filehandles with a single call
4             #
5             # File: Multi.pm
6             #
7             # Author: Nem W Schlecht
8             # Last Modification: $Date: 1998/08/07 23:30:57 $
9             #
10             # $Id: Multi.pm,v 1.1 1998/08/07 23:30:57 nem Exp $
11             # $Log: Multi.pm,v $
12             # Revision 1.1 1998/08/07 23:30:57 nem
13             # Initial revision
14             #
15             #
16             # Copyright 1996 by Nem W Schlecht. All rights reserved.
17             # This is free software; you can distribute it and/or
18             # modify it under the same terms as Perl itself.
19             #
20              
21             package IO::File::Multi;
22 1     1   424 use strict;
  1         2  
  1         34  
23 1     1   542 use IO::File;
  1         9133  
  1         112  
24 1     1   7 use Carp;
  1         2  
  1         56  
25              
26 1     1   14 use vars qw($VERSION);
  1         1  
  1         694  
27             our $VERSION = '1.04';
28              
29             sub new {
30 2     2 0 23 my $class = shift;
31 2         7 return bless( {}, $class );
32             }
33              
34             #
35             # add another output
36             sub open {
37 5     5 0 1680 my $self = shift;
38 5         22 my $fh = new IO::File;
39 5 50       160 $fh->open(@_) || carp( ref($self), " - open failed: '@_'" );
40 5         253 push( @{ $self->{handles} }, $fh );
  5         42  
41             }
42              
43             #
44             # Return refs to IO::File objects
45             sub members {
46 1     1 0 120 my $self = shift;
47 1         1 return @{ $self->{handles} };
  1         5  
48             }
49              
50             #
51             # IO::File stub routine
52             sub fh_st {
53 6     6 0 9 my $self = shift;
54 6         21 my (@args) = @_;
55 6         10 my $ret;
56 6         35 my $sub_call = ( split( /::/o, ( caller(1) )[3] ) )[-1]; # Ack!
57 6         13 for ( @{ $self->{handles} } ) {
  6         14  
58 16         277 $ret = $_->$sub_call(@args);
59             }
60 6         277 return $ret;
61             }
62              
63             #
64             # Clean up.
65             sub DESTROY {
66 2     2   23 my $self = shift;
67 2         5 $self->close();
68             }
69              
70 3     3 0 25 sub print { my $I = shift; $I->fh_st(@_); }
  3         7  
71 1     1 0 6 sub printf { my $I = shift; $I->fh_st(@_); }
  1         3  
72 2     2 0 3 sub close { my $I = shift; $I->fh_st(@_); }
  2         7  
73 0     0 0   sub autoflush { my $I = shift; $I->fh_st(@_); }
  0            
74 0     0 0   sub output_field_separator { my $I = shift; $I->fh_st(@_); }
  0            
75 0     0 0   sub output_record_separator { my $I = shift; $I->fh_st(@_); }
  0            
76 0     0 0   sub format_page_number { my $I = shift; $I->fh_st(@_); }
  0            
77 0     0 0   sub format_lines_per_page { my $I = shift; $I->fh_st(@_); }
  0            
78 0     0 0   sub format_lines_left { my $I = shift; $I->fh_st(@_); }
  0            
79 0     0 0   sub format_name { my $I = shift; $I->fh_st(@_); }
  0            
80 0     0 0   sub format_top_name { my $I = shift; $I->fh_st(@_); }
  0            
81 0     0 0   sub format_line_break_characters { my $I = shift; $I->fh_st(@_); }
  0            
82 0     0 0   sub format_formfeed { my $I = shift; $I->fh_st(@_); }
  0            
83              
84             #
85             # IO::File::Multi doesn't do input (yet - and maybe it never will)
86             #
87             #sub getline { my $I = shift; $I->fh_st(@_); }
88             #sub getlines { my $I = shift; $I->fh_st(@_); }
89             #sub input_record_separator { my $I = shift; $I->fh_st(@_); }
90             #sub input_line_number { my $I = shift; $I->fh_st(@_); }
91              
92             __END__