| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package Acme::MyPeek; | 
| 2 |  |  |  |  |  |  |  | 
| 3 | 1 |  |  | 1 |  | 743 | use strict; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 34 |  | 
| 4 | 1 |  |  | 1 |  | 4 | use warnings; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 30 |  | 
| 5 |  |  |  |  |  |  |  | 
| 6 | 1 |  |  | 1 |  | 13 | use B qw(svref_2object class); | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 383 |  | 
| 7 |  |  |  |  |  |  |  | 
| 8 |  |  |  |  |  |  | require Exporter; | 
| 9 |  |  |  |  |  |  |  | 
| 10 |  |  |  |  |  |  | our @ISA       = qw(Exporter); | 
| 11 |  |  |  |  |  |  | our @EXPORT    = qw(hi hd dt lv); | 
| 12 |  |  |  |  |  |  | our @EXPORT_OK = qw(); | 
| 13 |  |  |  |  |  |  | our $VERSION   = '0.04'; | 
| 14 |  |  |  |  |  |  |  | 
| 15 |  |  |  |  |  |  | my $last_val; | 
| 16 |  |  |  |  |  |  |  | 
| 17 | 126 |  |  | 126 | 0 | 415 | sub hi { highval( sub{ $_[0]                 eq sprintf('%u',  $_[0])      }); } | 
|  | 1 |  |  | 1 |  | 5311 |  | 
| 18 | 111 |  |  | 111 | 0 | 345 | sub hd { highval( sub{ sprintf('%.f', $_[0]) ne sprintf('%.f', $_[0] - 1)  }); } | 
|  | 1 |  |  | 1 |  | 136 |  | 
| 19 | 3 |  |  | 3 | 0 | 2085 | sub dt { class(svref_2object(\$_[0]));                                 } | 
| 20 | 2 |  |  | 2 | 0 | 12 | sub lv { $last_val; } | 
| 21 |  |  |  |  |  |  |  | 
| 22 |  |  |  |  |  |  | sub highval { | 
| 23 | 2 |  |  | 2 | 0 | 3 | my ($ok) = @_; | 
| 24 |  |  |  |  |  |  |  | 
| 25 | 2 |  |  |  |  | 4 | my $x = 1; | 
| 26 | 2 |  |  |  |  | 2 | my $f = 1; | 
| 27 |  |  |  |  |  |  |  | 
| 28 | 2 |  |  |  |  | 5 | for (1..100) { | 
| 29 | 36 |  |  |  |  | 31 | my $y = $x * 10; | 
| 30 |  |  |  |  |  |  |  | 
| 31 | 36 | 100 |  |  |  | 49 | unless ($ok->($y)) { | 
| 32 | 2 |  |  |  |  | 4 | $f = 0; | 
| 33 | 2 |  |  |  |  | 3 | last; | 
| 34 |  |  |  |  |  |  | } | 
| 35 |  |  |  |  |  |  |  | 
| 36 | 34 |  |  |  |  | 44 | $x = $y; | 
| 37 |  |  |  |  |  |  | } | 
| 38 |  |  |  |  |  |  |  | 
| 39 | 2 |  |  |  |  | 4 | $last_val = $x; | 
| 40 |  |  |  |  |  |  |  | 
| 41 | 2 | 50 |  |  |  | 5 | return -1 if $f; | 
| 42 |  |  |  |  |  |  |  | 
| 43 | 2 |  |  |  |  | 3 | my $r = $x; | 
| 44 |  |  |  |  |  |  |  | 
| 45 | 2 |  |  |  |  | 4 | for (1..1000) { | 
| 46 | 201 |  |  |  |  | 190 | my $y = $x + $r; | 
| 47 |  |  |  |  |  |  |  | 
| 48 | 201 | 100 |  |  |  | 267 | unless ($ok->($y)) { | 
| 49 | 36 | 100 |  |  |  | 54 | if ($r <= 1) { | 
| 50 | 2 |  |  |  |  | 3 | $r = 0; | 
| 51 | 2 |  |  |  |  | 3 | last; | 
| 52 |  |  |  |  |  |  | } | 
| 53 |  |  |  |  |  |  |  | 
| 54 | 34 |  |  |  |  | 31 | $r /= 10; | 
| 55 | 34 |  |  |  |  | 45 | next; | 
| 56 |  |  |  |  |  |  | } | 
| 57 |  |  |  |  |  |  |  | 
| 58 | 165 |  |  |  |  | 192 | $x += $r; | 
| 59 |  |  |  |  |  |  | } | 
| 60 |  |  |  |  |  |  |  | 
| 61 | 2 |  |  |  |  | 3 | $last_val = $x; | 
| 62 |  |  |  |  |  |  |  | 
| 63 | 2 | 50 |  |  |  | 4 | return -2 if $r; | 
| 64 |  |  |  |  |  |  |  | 
| 65 | 2 |  |  |  |  | 6 | return $x | 
| 66 |  |  |  |  |  |  | } | 
| 67 |  |  |  |  |  |  |  | 
| 68 |  |  |  |  |  |  | 1; | 
| 69 |  |  |  |  |  |  |  | 
| 70 |  |  |  |  |  |  | __END__ |