File Coverage

blib/lib/Linux/PipeMagic.pm
Criterion Covered Total %
statement 27 28 96.4
branch 2 4 50.0
condition n/a
subroutine 8 8 100.0
pod n/a
total 37 40 92.5


line stmt bran cond sub pod time code
1             package Linux::PipeMagic;
2              
3 5     5   113316 use 5.010001;
  5         38  
4 5     5   22 use strict;
  5         14  
  5         106  
5 5     5   20 use warnings;
  5         9  
  5         114  
6 5     5   20 use Carp;
  5         6  
  5         396  
7              
8             require Exporter;
9 5     5   2019 use AutoLoader;
  5         5933  
  5         25  
10              
11             our @ISA = qw(Exporter);
12              
13             # Items to export into callers namespace by default. Note: do not export
14             # names by default without a very good reason. Use EXPORT_OK instead.
15             # Do not simply export all your public functions/methods/constants.
16              
17             # This allows declaration use Linux::PipeMagic ':all';
18             # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
19             # will save memory.
20             our %EXPORT_TAGS = ( 'all' => [ qw(
21             systee
22             syssplice
23             syssendfile
24             SPLICE_F_MOVE
25             SPLICE_F_NONBLOCK
26             SPLICE_F_MORE
27             SPLICE_F_GIFT
28             ) ] );
29              
30             our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
31              
32             our @EXPORT = qw();
33              
34             our $VERSION = '0.04_01';
35              
36             sub AUTOLOAD {
37             # This AUTOLOAD is used to 'autoload' constants from the constant()
38             # XS function.
39              
40 4     4   113 my $constname;
41 4         5 our $AUTOLOAD;
42 4         17 ($constname = $AUTOLOAD) =~ s/.*:://;
43 4 50       12 croak "&Linux::PipeMagic::constant not defined" if $constname eq 'constant';
44 4         14 my ($error, $val) = constant($constname);
45 4 50       9 if ($error) { croak $error; }
  0         0  
46             {
47 5     5   709 no strict 'refs';
  5         18  
  5         463  
  4         12  
48             # Fixed between 5.005_53 and 5.005_61
49             #XXX if ($] >= 5.00561) {
50             #XXX *$AUTOLOAD = sub () { $val };
51             #XXX }
52             #XXX else {
53 4     4   20 *$AUTOLOAD = sub { $val };
  4         33  
54             #XXX }
55             }
56 4         16 goto &$AUTOLOAD;
57             }
58              
59             require XSLoader;
60             XSLoader::load('Linux::PipeMagic', $VERSION);
61              
62             # Preloaded methods go here.
63              
64             # Autoload methods go after =cut, and are processed by the autosplit program.
65              
66             1;
67             __END__