File Coverage

blib/lib/Acme/MJD.pm
Criterion Covered Total %
statement 8 13 61.5
branch n/a
condition n/a
subroutine 3 5 60.0
pod 0 4 0.0
total 11 22 50.0


line stmt bran cond sub pod time code
1             package Acme::MJD;
2             $VERSION = '0.02';
3            
4             my $glass = " \t"x8;
5 0     0 0 0 sub reflect { local $_ = unpack "b*", pop; tr/01/ \t/; s/(.{9})/$1\n/g; $glass.$_ }
  0         0  
  0         0  
  0         0  
6 1     1 0 3 sub deflect { local $_ = pop; s/^$glass|[^ \t]//g; tr/ \t/01/; pack "b*", $_ }
  1         1464  
  1         18  
  1         182  
7 1     1 0 58 sub opaque { $_[0] =~ /\S/ }
8 0     0 0   sub deep { $_[0] =~ /^$glass/ }
9            
10             open 0 or print "Can't open '$0'\n" and exit;
11             (my $thought = join "", <0>) =~ s/.*^\s*use\s+Acme::MJD\s*;\n\n(?:.*?--\s+Mark\s+Jason\s+Dominus.*?\n)?//sm;
12            
13             local $SIG{__WARN__} = \&opaque;
14 1     1   37 do {eval deflect $thought; exit} unless opaque $thought and not deep $thought;
  1         2  
  1         59  
15            
16             my $DeepThought = '';
17             {
18             my $rand = int rand 66;
19             while($rand > 0){
20             $DeepThought = ;
21             $rand--;
22             }
23             close DATA;
24             chomp $DeepThought;
25             $DeepThought =~ s/^\#\d+\s//;
26            
27             require Text::Wrap;
28             local $Text::Wrap::columns = 72;
29            
30             my @lines = Text::Wrap::wrap('', '', $DeepThought);
31            
32             if(length $lines[-1] < 63 ){
33             $lines[-1] .= " -- Mark Jason Dominus";
34             } else {
35             push @lines, " -- Mark Jason Dominus";
36             }
37            
38             $DeepThought = join "\n",@lines;
39             }
40            
41             open 0, ">$0" or print "Cannot ponder '$0'\n" and exit;
42             print {0} "use Acme::MJD;\n\n$DeepThought\n", reflect $thought and exit;
43            
44             =head1 NAME
45            
46             Acme::MJD - Mark Jason Dominus does perl
47            
48            
49             =head1 SYNOPSIS
50            
51             use Acme::MJD;
52             print "Hello world";
53            
54             =head1 DESCRIPTION
55            
56             The first time you run a program under C, the module
57             removes all the unsightly printable characters from
58             your source file. The code continues to work exactly as it did before,
59             but now it contains a profound nugget of wisdom from the man himself,
60             Mark Jason Dominus (Ehttp://perl.plover.com/E).
61            
62             These nuggets were mined from a comp.lang.perl.misc
63             post by MJD entitled "Good Advice and Maxims for Programmers"
64             (Ehttp://groups.google.com/groups?selm=a6ukat%24a4b%241%40plover.comE).
65            
66             =head1 BUGS
67            
68             Please don't report bugs ;)
69             But if you really really need to, go to
70             Ehttp://rt.cpan.org/NoAuth/Bugs.html?Dist=Acme-MJDE
71             or send mail to Ebug-Acme-MJD#rt.cpan.orgE
72            
73            
74             =head1 AUTHOR
75            
76             D. H. (PODMASTER)
77            
78             =head1 COPYRIGHT
79            
80             This program is free software; you can redistribute
81             it and/or modify it under the same terms as Perl itself.
82            
83             The full text of the license can be found in the
84             LICENSE file included with this module distribution.
85            
86            
87             =head1 SEE ALSO
88            
89             L, L, L.
90            
91             =cut
92            
93             __DATA__