File Coverage

blib/lib/Acme/Remote/Strangulation/Protocol.pm
Criterion Covered Total %
statement 15 20 75.0
branch n/a
condition n/a
subroutine 6 8 75.0
pod 0 4 0.0
total 21 32 65.6


line stmt bran cond sub pod time code
1             package Acme::Remote::Strangulation::Protocol;
2 1     1   632 use strict;
  1         2  
  1         36  
3 1     1   6 use vars qw($VERSION);
  1         1  
  1         635  
4             $VERSION = '0.03';
5            
6             my $glass = " \t"x8;
7 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  
8 1     1 0 3 sub deflect { local $_ = pop; s/^$glass|[^ \t]//g; tr/ \t/01/; pack "b*", $_ }
  1         266  
  1         6  
  1         90  
9 1     1 0 11 sub opaque { $_[0] =~ /\S/ }
10 0     0 0   sub deep { $_[0] =~ /^$glass/ }
11            
12             open 0 or print "Can't open '$0'\n" and exit;
13             (my $thought = join "", <0>) =~ s/.*^\s*use\s+Acme::Remote::Strangulation::Protocol\s*;\n\n(?:.*?--\s+Larry\s+Wall.*?\n)?//sm;
14            
15             local $SIG{__WARN__} = \&opaque;
16 1     1   1185 do {eval deflect $thought; exit} unless opaque $thought and not deep $thought;
  1     1   55991  
  1         13  
  1         576  
17            
18             my $DeepThought = '';
19             {
20             my $rand = int rand 5;
21             while($rand > 0){
22             $DeepThought = ;
23             $rand--;
24             }
25             close DATA;
26             chomp $DeepThought;
27             $DeepThought =~ s/^\#\d+\s//;
28            
29             require Text::Wrap;
30             local $Text::Wrap::columns = 72;
31            
32             my @lines = Text::Wrap::wrap('', '', $DeepThought);
33            
34             if(length $lines[-1] < 63 ){
35             $lines[-1] .= " -- Larry Wall";
36             } else {
37             push @lines, " -- Larry Wall";
38             }
39            
40             $DeepThought = join "\n",@lines;
41             }
42            
43             open 0, ">$0" or print "Cannot ponder '$0'\n" and exit;
44             print {0} "use Acme::Remote::Strangulation::Protocol;\n\n$DeepThought\n", reflect $thought and exit;
45            
46            
47             =head1 NAME
48            
49             Acme::Remote::Strangulation::Protocol - The wisdom of Larry Wall
50            
51             =head1 SYNOPSIS
52            
53             use Acme::Remote::Strangulation::Protocol;
54            
55             =head1 DESCRIPTION
56            
57             "The social dynamics of the net are a direct consequence of the fact that
58             nobody has yet developed a Remote Strangulation Protocol."
59            
60             =head2 EXPORT
61            
62             None by default.
63            
64             =head1 ACKNOWLEDGEMENTS
65            
66             My thanks goes out to the following individuals:
67            
68             chromatic - For giving me the idea to do this
69             crazyinsomniac - I lifted most of the code from his Acme::MJD module
70             Larry Wall - For a great programming language and the quote that
71             started it all.
72            
73             =head1 AUTHOR
74            
75             Thomas Stanley < Thomas_J_Stanley@msn.com >
76            
77             =head1 SEE ALSO
78            
79             perl(1).
80            
81             =cut
82            
83             __DATA__