File Coverage

blib/lib/Tie/Handle/SkipHeader.pm
Criterion Covered Total %
statement 18 18 100.0
branch 4 6 66.6
condition n/a
subroutine 5 5 100.0
pod n/a
total 27 29 93.1


line stmt bran cond sub pod time code
1 1     1   69479 use strict;
  1         9  
  1         53  
2 1 50   1   5 BEGIN{ if (not $] < 5.006) { require warnings; warnings->import } }
  1         5  
  1         49  
3              
4             package Tie::Handle::SkipHeader;
5             # ABSTRACT: Tied handle that hides an RFC822-style header
6              
7             our $VERSION = '0.004';
8              
9 1     1   458 use Tie::Handle::Offset;
  1         2  
  1         161  
10             our @ISA = qw/Tie::Handle::Offset/;
11              
12             sub TIEHANDLE
13             {
14 1     1   751 my $class = shift;
15 1 50       4 pop if ref $_[-1] eq 'HASH'; # we don't take any arguments
16 1         9 return $class->SUPER::TIEHANDLE(@_);
17             }
18              
19             # read to blank/whitespace line and set offset right after
20             sub OPEN
21             {
22 1     1   22 my $self = shift;
23 1         8 my $rc = $self->SUPER::OPEN(@_);
24 1         26 while ( my $line = <$self> ) {
25 4 100       19 last if $line =~ /\A\s*\Z/;
26             }
27 1         5 $self->offset( tell($self) );
28 1         3 return $rc;
29             }
30              
31             1;
32              
33              
34             # vim: ts=2 sts=2 sw=2 et:
35              
36             __END__