The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dev::Bollocks - Arbitrary sized bollocks straight from middle management

SYNOPSIS

    use Dev::Bollocks;

    print Dev::Bollocks->new(),"\n";    # create first bollox
    print Dev::Bollocks->rand(),"\n";   # create random bollox
    print Dev::Bollocks::rand(3),"\n";  # create random bollox w/ 3 words

    $x = Dev::Bollocks->rand(),"\n";    # create some random bollox
    for ($i = 0; $i ++; $i < 10)
      {
      print "$x\n"; $x++;               # next bollox
      }

REQUIRES

perl v5.8.1, Math::BigInt, Math::String, Math::String::Charset, Math::String::Charset::Grouped

EXPORTS

Exports nothing.

DESCRIPTION

This module implements /dev/bollocks, which generates management bullshit whenever you need it.

Of course, to follow the spirit outlined in http://www.fatsquirrel.org/veghead/software/bollocks/ this module doesn't simple do a head /dev/bollocks, that would be too easy, too fast and non-portable. And bullshit is universilly portable.

Thus the module makes a subclass of Math::String and changes the default charset to a charset that somewhat emulates and extends the original /dev/bollocks charset.

As a side-effect you can calculate with bollocks strings, or even compare them to find out which is greater crap than the other:

        use Dev::Bollocks;

        my $x = Dev::Bollocks->rand();
        my $y = Dev::Bollocks->rand();

        print "$x is more crap than $y\n" if ($x > $y);
        print "$y is more crap than $x\n" if ($y > $x);
        print "$x is the same bollox than $y\n" unless ($y != $x);

EXAMPLES

Run examples/bollocks.pl to get something like:

 We were told to adaptively monetize holistic market-driven systems.
 It is important to appropriately fashion meta-services.
 We can enthusiastically utilize proactive channels.
 We should paradigmatically streamline e-services.
 Your job is to seamlessly architect dynamic out-of-the-box clusters.
 Our job is to interactively harness high-yield 24/7 markets.
 We were told to widespreadedly supply holistic synergies.
 So, let's assertively grow front-end vertical architectures.
 Your job is to completely exploit scalable meta-services.
 All of us plan to evangelistically empower low-risk edge-of-your-seat content.
 So, let's augmentatively build back-end systems.
 And next we simultaneously transform sexy m-commerce.
 All of us plan to continually benchmark world-class methodologies.
 Your job is to enormously disseminate open-source interactive mindshares.
 So, let's simultaneously transform interfaces.
 Our job is to confidentially coordinate intuitive intuitive e-commerce.
 It is important to paradigmatically embrace robust dot-com solutions.
 And next we appropriately innovate strategic customers.
 All of us plan to challengingly target synergies.
 Our job is to conveniently generate collaborative deliverables.
 It is important to evangelistically synergize high-yield robust IPOs.
 We should competently e-enable convergence.
 All of us plan to economically negotiate action-items.
 It is important to competently integrate value-added efficient users.
 We better widespreadedly promote vertical strategic materials.
 And next we centrally harness convergence.
 So, let's dynamically e-enable out-of-the-box 24/365 customers.
 And next we dramatically enhance efficient development.
 We better biannually enable high-yield metrics.

INTERNAL DETAILS

I spare you the internal details. You don't want to know the internas of middle management. Trust me. If you still are inclined to know, see Math::String. Don't say I didn't warn you.

USEFULL METHODS

new()

            $bollocks = Dev::Bollock->new();

Create a new Dev::Bollocks object with the first bollocks ever. Optionally you can pass another bollocks string and it will see if it is valid middle management speak. Never was generating crap so easy!

rand()

            $bollocks = Dev::Bollock->rand($words);

Create a new, random Dev::Bollocks object with $words words. $words defaults to 4.

first()

            $bollocks->first($length);
            $bollocks = Dev::Bollocks->first($length);

Generate the first bollocks of a certain length, length beeing here the number of words.

last()

            $bollocks->last($length);
            $bollocks = Dev::Bollocks->last($length);

Same as first(), only does the, well, last crap you expect.

as_number()

            $bollocks->as_number();

Return internal number as normalized BigInt including sign.

length()

            $bollocks->length();

Return the number of characters in the resulting string (aka it's length). It returns the number of words, since a Dev::Bollocks charset contains the crap words as 'characters'.

charset()

            $bollocks->charset();

Return a reference to the charset of the Dev::Bollocks object.

PERFORMANCE

It is rather slow. This is a feature, not a bug.

Benchmarks

Were not done on purpose. Nobody expects middle, or any other, for what it matters, management, to be fast or efficient, so we didn't waste our time in profiling it.

PLANS

Bring upper and lower management speak to the, er, waiting masses.

LICENSE

This program is free crap; you may redistribute it and/or modify it under the same terms as Perl itself.

CREDITS

AUTHOR

If you use this module in one of your projects (haha!), then please email me. Or maybe better not. Oh, crap, mail me anyway.

(c) Tels http://bloodgate.com 2001 - 2006.