File Coverage

blib/lib/Sex.pm
Criterion Covered Total %
statement 46 50 92.0
branch 5 10 50.0
condition n/a
subroutine 9 9 100.0
pod 0 1 0.0
total 60 70 85.7


line stmt bran cond sub pod time code
1             package Sex;
2              
3 3     3   58593 use strict qw(vars subs);
  3         7  
  3         133  
4              
5             srand; # More exciting this way.
6              
7 3     3   18 use vars qw($VERSION);
  3         6  
  3         1527  
8             $VERSION = '0.12';
9              
10             my @Grunts = ('Does it get bigger?',
11             'I thought eight inches was longer than that.',
12             'Baseball...',
13             "Let's talk about our relationship.",
14             'Wrong hole, dear.',
15             qw(Yes!
16             Oh!
17             Harder!
18             YEAH!
19             YES!
20             OOOooooh...
21             Baby.
22             MORE!
23             Mmmmmm...
24             There!
25             )
26             );
27              
28             sub import {
29 1     1   11 local $| = 1;
30              
31 1         2 my($class) = shift;
32 1         4 my($caller) = caller;
33              
34 1 50       9 if( !@_ ) {
    50          
35 0         0 die "It takes two to tango, babe.\n";
36             }
37             elsif( @_ == 1 ) {
38 0 0       0 if( $_[0] eq $caller ) {
39 0         0 die <
40             masturbation
41             n : manual stimulation of the genital organs (of yourself or
42             another) for sexual pleasure [syn: {onanism}, {self-abuse}]
43             MASTURBATION
44              
45             }
46             else {
47 0         0 die "Parthenogenesis isn't currently supported by ".
48             __PACKAGE__ . "\n";
49             }
50             }
51 1 100       2 my @modules = map { /^\?$/ ? volunteer() : $_ } @_;
  5         23  
52              
53 1         4 my %zygote = ();
54 1         1 my $call_sym_table = \%{$caller.'::'};
  1         5  
55 1         3 foreach my $gamete (@modules) {
56 5 50   1   1891 eval "use $gamete(); 1" or next;
  1     1   1788  
  1     1   13582  
  1     1   14  
  1     1   9  
  1         2  
  1         9  
  1         6  
  1         2  
  1         9  
  1         7  
  1         2  
  1         8  
  1         7  
  1         2  
  1         9  
57 5         9 while( my($chromo, $rna) = each %{$gamete.'::'} ) {
  225         877  
58 220         208 push @{$zygote{$chromo}}, $rna;
  220         821  
59             }
60             }
61              
62 1         9 while( my($chromo, $rna) = each %zygote ) {
63 203         810 $call_sym_table->{$chromo} = $rna->[rand @$rna];
64 203         12503 print $Grunts[rand @Grunts], "\n";
65             #select(undef, undef, undef, 0.45);
66             }
67              
68             # push @{$caller.'::ISA'}, @modules;
69              
70 1         6 print "\n";
71              
72 1         2210 return 'Harry Balls who?';
73             }
74              
75             sub volunteer {
76 3     3 0 259 my @volunteers = map {s/\.pmc?$//;s!/!::!g;$_} keys %INC;
  198         513  
  198         645  
  198         401  
77 3         47 $volunteers[rand @volunteers];
78             }
79              
80             return 'Harry balls anyone he wants!';