File Coverage

blib/lib/Tie/Array/Stack.pm
Criterion Covered Total %
statement 13 16 81.2
branch 2 2 100.0
condition 2 3 66.6
subroutine 6 9 66.6
pod n/a
total 23 30 76.6


line stmt bran cond sub pod time code
1             package Tie::Array::Stack;
2              
3             our $AUTHORITY = 'cpan:TOBYINK';
4             our $VERSION = '0.002';
5              
6 1     1   5 use Carp;
  1         2  
  1         66  
7 1     1   5 use Tie::Array ();
  1         3  
  1         159  
8             our @ISA = qw(Tie::StdArray);
9              
10             eval qq[
11             sub $_ { croak "$_ operation not permitted on stack" } 1
12 0     0   0 ] || die $@ for qw(STORE SHIFT UNSHIFT EXISTS DELETE SPLICE);
  0     0   0  
  1     1   1705  
  0     0   0  
  1     1   532  
  1     1   586  
13              
14             sub FETCH
15             {
16 3     3   4575 my $self = shift;
17            
18             # The final item on the stack can be peeked at.
19 3 100 66     26 if ($_[0] == -1 or $_[0] + 1 == scalar(@$self))
20             {
21 2         18 return $self->SUPER::FETCH(@_);
22             }
23            
24 1         112 croak "FETCH operation not permitted on stack";
25             }
26              
27             1;
28              
29              
30             __END__