The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Sex - Perl teaches the birds and the bees.


  package Catholicism;
  use Sex qw(strict Religion);

  package Mormonism;
  use Sex qw(Catholicism Sex);


Heterogeneous recombination of Perl packages.

Given two (or more, I'm a liberal guy) packages, will recombine their symbols at random recombining them into the new module thus providing a cross-section of its functions and global variables. It will also push the parent classes onto the child's @ISA array.

So you could do:

    package Net::SFTP;
    use Sex qw(Net::FTP Net::SSLeay);

And get a secure FTP client!

The recombination occurs in such a way to ensure that the child will contain -all- the symbols of both parents. Should two (or more) parents wish to bestow the same symbol on its child one will be chosen at random.

For example:

    package DejaNews;
    use Sex qw(LWP::Simple Net::NNTP);

LWP::Simple and Net::NNTP both have a head() function and thus they try to give head() to their child. will suck the head() off either LWP::Simple or Net::NNTP and stick it to DejaNews. Afterwards, DejaNews can procede to finally use its head().

Here's another timely example for Sex in the 21st century:

    package URI::Bot9000;
    use Sex qw(URI LWP::RobotUA protected);

Because of the dire consequences of having sex with URI, one should make sure you're well protected.


There are many bugs you can get from having Sex used too often on your computer. Please be sure your programs are Safe before they have Sex.

    package Trojan;
    use Sex qw(Safe Sex);


Michael 'The Porn King of CMU' Schwern <>


'Disco Dolls in Hot Skin'

'Exhausted: The John Holmes Story'

'Deep Recursion' starring Ada Lovelace.

'The Fly' (1953)