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             #
17             # Copyright © 1996 by Nem W Schlecht. All rights reserved.
18             # This is free software; you can distribute it and/or
19             # modify it under the same terms as Perl itself.
20             #
21              
22             package IO::File::Multi;
23 1     1   562 use strict;
  1         2  
  1         38  
24 1     1   919 use IO::File;
  1         10892  
  1         130  
25 1     1   8 use Carp;
  1         6  
  1         45  
26              
27 1     1   5 use vars qw($VERSION);
  1         1  
  1         638  
28             $VERSION='1.02';
29              
30             sub new {
31 2     2 0 40 my($class)=shift;
32 2         8 return bless({}, $class);
33             }
34              
35             #
36             # add another output
37             sub open {
38 5     5 0 387 my($self)=shift;
39 5         31 my($fh)=new IO::File;
40 5 50       175 $fh->open(@_) || carp(ref($self), " - open failed: '@_'");
41 5         434 push(@{$self->{handles}}, $fh);
  5         27  
42             }
43              
44             #
45             # Return refs to IO::File objects
46             sub members {
47 1     1 0 129 my($self)=shift;
48 1         3 return @{$self->{handles}};
  1         5  
49             }
50              
51             #
52             # IO::File stub routine
53             sub fh_st {
54 6     6 0 8 my($self)=shift;
55 6         15 my(@args)=@_;
56 6         7 my($ret);
57 6         43 my($sub_call)=(split(/::/o,(caller(1))[3]))[-1]; # Ack!
58 6         13 for (@{$self->{handles}}) {
  6         15  
59 16         228 $ret = $_->$sub_call(@args);
60             }
61 6         190 return $ret;
62             }
63              
64             #
65             # Clean up.
66             sub DESTROY {
67 2     2   25 my($self)=shift;
68 2         6 $self->close();
69             }
70              
71 3     3 0 18 sub print { my($I)=shift; $I->fh_st(@_); }
  3         12  
72 1     1 0 7 sub printf { my($I)=shift; $I->fh_st(@_); }
  1         4  
73 2     2 0 4 sub close { my($I)=shift; $I->fh_st(@_); }
  2         5  
74 0     0 0   sub autoflush { my($I)=shift; $I->fh_st(@_); }
  0            
75 0     0 0   sub output_field_separator { my($I)=shift; $I->fh_st(@_); }
  0            
76 0     0 0   sub output_record_separator { my($I)=shift; $I->fh_st(@_); }
  0            
77 0     0 0   sub format_page_number { my($I)=shift; $I->fh_st(@_); }
  0            
78 0     0 0   sub format_lines_per_page { my($I)=shift; $I->fh_st(@_); }
  0            
79 0     0 0   sub format_lines_left { my($I)=shift; $I->fh_st(@_); }
  0            
80 0     0 0   sub format_name { my($I)=shift; $I->fh_st(@_); }
  0            
81 0     0 0   sub format_top_name { my($I)=shift; $I->fh_st(@_); }
  0            
82 0     0 0   sub format_line_break_characters { my($I)=shift; $I->fh_st(@_); }
  0            
83 0     0 0   sub format_formfeed { my($I)=shift; $I->fh_st(@_); }
  0            
84              
85             #
86             # IO::File::Multi don't do input (yet - and maybe it never will)
87             #
88             #sub getline { my($I)=shift; $I->fh_st(@_); }
89             #sub getlines { my($I)=shift; $I->fh_st(@_); }
90             #sub input_record_separator { my($I)=shift; $I->fh_st(@_); }
91             #sub input_line_number { my($I)=shift; $I->fh_st(@_); }
92              
93             __END__