My published perl modules - all are also available on the
, and also on
Github.
The most recent release is at the top.
- Number::Phone (docs) - a ginormous suite of modules for extracting information from phone numbers (see it in action) (previous versions: 4.0003 | 4.0002 | 4.0001 | 4.0000 | 3.9002 | 3.9001 | 3.9000 | 3.8007 | 3.8006 | 3.8005 | 3.8004 | 3.8003 | 3.8002 | 3.8001 | 3.8000 | 3.7003 | 3.7002 | 3.7001 | 3.7000 | 3.6006 | 3.6005 | 3.6004 | 3.6003 | 3.6002 | 3.6001 | 3.6000 | 3.5001 | 3.5000 | 3.4006 | 3.4005 | 3.4004 | 3.4003 | 3.4002 | 3.4001 | 3.4000 | 3.3000 | 3.2001 | 3.2000 | 3.1 | 3.0013 | 3.0012 | 3.0011 | 3.0010 | 3.0009 | 3.0008 | 3.0007 | 3.0006 | 3.0005 | 3.0004 | 3.0003 | 3.0002 | 3.0001 | 3.0 | 2.2003 | 2.2002 | 2.2001 | 2.2 | 2.1 | 2.0002 | 2.0001 | 2.0 | 1.9 | 1.8006 | 1.8005 | 1.8003 | 1.8002 | 1.8001 | 1.8 | 1.7101 | 1.71 | 1.7004 | 1.7003 | 1.7002 | 1.7001 | 1.7 | 1.6 | 1.581 | 1.58 | 1.57 | 1.5601 | 1.56 | 1.55 | 1.54 | 1.53 | 1.52 | 1.51 | 1.5 | 1.4004 | 1.4003 | 1.4002 | 1.4001 | 1.4 | 1.3004 | 1.3003 | 1.3002 | 1.3001 | 1.3 | 1.2001 | 1.2 | 1.1 | 1.0);
- MooseX::Types::StrictScalarTypes (docs) - strict Moose type constraints for integers, numbers, and Booleans;
- Devel::CheckOS (docs) - find what OS and OS "family" you're running on, or require a particular OS (previous versions: 2.03 | 2.02 | 2.01 | 2.00 | 1.96 | 1.95 | 1.94 | 1.93 | 1.92 | 1.91 | 1.90 | 1.87 | 1.86 | 1.85 | 1.84 | 1.83 | 1.82 | 1.81 | 1.80 | 1.79 | 1.78 | 1.77 | 1.76 | 1.75 | 1.74 | 1.73 | 1.72 | 1.7 | 1.64 | 1.63 | 1.62 | 1.61 | 1.6 | 1.55 | 1.54 | 1.53 | 1.52 | 1.51 | 1.50 | 1.46 | 1.45 | 1.44 | 1.43 | 1.42 | 1.41 | 1.4 | 1.3 | 1.2 | 1.1 | 1.0 | 0.92 | 0.91 | 0.9);
- Scalar::Type (docs) - Figure out what type a scalar is (previous versions: 1.0.0 | 0.3.2 | 0.3.1 | 0.3.0 | 0.2.0 | 0.1.2 | 0.1.1 | 0.1.0 | 0.0.4 | 0.0.3 | 0.0.2 | 0.0.1);
- Params::Validate::Dependencies::all_or_none_of (docs) - extension for Params::Validate::Dependencies to match all or none of a set of options (previous versions: 1.01 | 1.0);
- Params::Validate::Dependencies (docs) - extends Params::Validate to make it easy to validate that you have been passed the correct combinations of parameters. Also a helper class for Data::Domain (previous versions: 1.41 | 1.40 | 1.32 | 1.31 | 1.30 | 1.23 | 1.22 | 1.21 | 1.2 | 1.13 | 1.12 | 1.11 | 1.1 | 1.00);
- Unix::Sudo (docs) - run a block of code as root (previous versions: 4.567.89 | 4 | 2 | 1);
- DBM::Deep (docs) - A pure perl multi-evel hash/array DBM that supports transactions. Originally by Joseph Huckaby, I am now a co-maintainer (previous versions: 2.0018_01 | 2.0018 | 2.0017);
- Data::CompactReadonly (docs) - a compact read-only database that consumes very little memory (previous versions: 0.1.0 | 0.0.6 | 0.0.5 | 0.0.4 | 0.0.3 | 0.0.2 | 0.0.1);
- String::Binary::Interpolation (docs) - make it easier to interpolate binary bytes into a string (previous versions: 1.0.0);
- Test::Differences (docs) - Test strings and data structures and show differences if not ok (previous versions: 0.70 | 0.69 | 0.68 | 0.67 | 0.66 | 0.65 | 0.64 | 0.63 | 0.62 | 0.61_01);
- Data::Compare (docs) - compare arbitrary data structures. Originally by Fabien Tassin, I am now a co-maintainer (previous versions: 1.28 | 1.27 | 1.26 | 1.25 | 1.24 | 1.23 | 1.22 | 1.2102 | 1.2101 | 1.21 | 1.20 | 1.19 | 1.18 | 0.17 | 0.16 | 0.15 | 0.14 | 0.13 | 0.12 | 0.11 | 0.10 | 0.09 | 0.08 | 0.07 | 0.06 | 0.05 | 0.04 | 0.03);
- App::ptimeout (docs) - time out a command, reporting errors (previous versions: 1.0.1 | 1.0.0);
- Devel::Deprecations::Environmental (docs) - deprecations for your code's surroundings (previous versions: 1.100 | 1.000);
- Class::Mockable (docs) - a little module to help make your code mockable for testing, and a module to use with it for testing that your code calls other code correctly (previous versions: 1.3001 | 1.3000 | 1.2001 | 1.2000 | 1.11 | 1.1 | 1.0002 | 1.0001 | 1.0);
- Sub::WrapPackages (docs) - wrap all subroutines in named packages, à la Aspects (previous versions: 2.01 | 2.0 | 1.31 | 1.3 | 1.2 | 1.1 | 1.0);
- CPAN::FindDependencies (docs) - find which modules/distributions a module depends on (previous versions: 3.12 | 3.11 | 3.10 | 3.09 | 3.08 | 3.07 | 3.06 | 3.05 | 3.04 | 3.03 | 3.02 | 3.01 | 3.00 | 2.49 | 2.48 | 2.47 | 2.46 | 2.45 | 2.44 | 2.43 | 2.42 | 2.41 | 2.4 | 2.34 | 2.33 | 2.32 | 2.31 | 2.3 | 2.22 | 2.21 | 2.2 | 2.1 | 2.0 | 1.1 | 1.02 | 1.01 | 1.0);
- lib::relative::to (docs) - Add a path to @INC relative to something else, such as your local checkout of some version control system (previous versions: 1.0000);
- CPU::Emulator::Z80 (docs) - a Z80 micro-processor emulator (previous versions: 1.0 | 0.9);
- Tie::STDOUT (docs) - intercept data written to STDOUT and transmogrify it with functions of your choice (previous versions: 1.0401 | 1.04 | 1.03 | 1.02 | 1.01 | 1.0);
- Devel::Hide (docs) - hide modules from perl so that it can't load them, useful for testing optional dependencies etc (previous versions: 0.0014 | 0.0013 | 0.0012 | 0.0011);
- Algorithm-Diff-JSON (docs) - find the differences between two lists and report on them in JSON;
- IP::World (docs) - fast IP-address to country-code translation, originally by Craig MacKenna (previous versions: 0.41 | 0.40 | 0.39 | 0.38);
- Test::Mojo::Role::HTTPstatus (docs) - Role to add some extra methods to Test::Mojo for testing routes' HTTP status codes;
- Net::Random (docs) - retrieves truly random data from various online sources (previous versions: 2.31 | 2.3 | 2.22 | 2.21 | 2.2 | 2.1 | 2.0 | 1.4 | 1.3 | 1.2 | 1.1 | 1.0);
- CPU::Emulator::Memory (docs) - a memory object for use in emulators. Also includes support for "banked" memory (previous versions: 1.1004 | 1.1003 | 1.1002 | 1.1001 | 1.1 | 1.0);
- File::Find::Rule::Permissions (docs) - an extension for File::Find::Rule so you can find files based upon whether an arbitrary user has read/ write/ execute access to them (previous versions: 2.03 | 2.02 | 2.01 | 2.0 | 1.3 | 1.2 | 1.1 | 1.0);
- Sub::Attribute (docs) - Reliable subroutine attribute handlers (now maintained by me, written by GFUJI) (previous versions: 0.06);
- Devel::Caller::IgnoreNamespaces (docs) - abstracts Hook::LexWrap's caller() magic out so it can be used by other modules (previous versions: 1.0);
- XML::Tiny (docs) - a simple very light-weight parser for a useful subset of XML (previous versions: 2.06 | 2.05 | 2.04 | 2.03 | 2.02 | 2.01 | 2.0 | 1.12 | 1.11 | 1.10 | 1.09 | 1.08 | 1.07 | 1.06 | 1.05 | 1.04 | 1.03 | 1.02 | 1.01 | 1.0);
- CPU::Emulator::Memory (docs) - a memory object for use in emulators. Also includes support for "banked" memory (previous versions: 1.1003 | 1.1002 | 1.1001 | 1.1 | 1.0);
- Statistics::ChiSquare (docs) - the chi-squared test. This was previously maintained by Jon Orwant (previous versions: 0.6 | 0.5);
- Number::Phone::UK::DetailedLocations (docs) - make more accurate guesses for the locations of UK phone numbers (previous versions: 1.3 | 1.2 | 1.1 | 1.0);
- Tie::Hash::Vivify (docs) - hashes that auto-vivify in interesting ways. Originally by Luke Palmer, I am now a co-maintainer (previous versions: 1.03 | 1.02 | 1.01 | 1.00);
- Class::CanBeA (docs) - get a list of all the subclasses of a superclass (previous versions: 1.3 | 1.2 | 1.1 | 1.0);
- CPAN::ParseDistribution (docs) - module for divining what versions of which modules are in a tarball or zip file from the CPAN or BackPAN (previous versions: 1.53 | 1.52 | 1.51 | 1.5 | 1.4 | 1.3 | 1.2 | 1.11 | 1.1 | 1.0);
- Data::Transactional (docs) - RDBMS-like transactions for data structures. This obsoletes Tie::Hash::Transactional (previous versions: 1.02 | 1.01 | 1.0 | 0.1 | THT 1.0);
- XML::DoubleEncodedEntities (docs) - fixes broken XML which has had entities encoded twice (previous versions: 1.0);
- Palm::TreoPhoneCallDB (docs) - parse call history databases generated by Palm Treo smartphones (previous versions: 1.1 | 1.0);
- Palm::Treo680MessageDB (docs) - parse SMS messages database generated by Palm Treo 680 smartphones (previous versions: 1.01 | 1.0);
- Palm::SMS (docs) - Parser for old-style PalmOS SMS databases. Will use Palm::Treo680MessagesDB if needed and available. Taken over maintenance of old module from original author (previous versions: 0.03);
- Class::DBI::ClassGenerator (docs) - create the skeleton of a Class::DBI application from a database schema (previous versions: 1.03 | 1.02 | 1.01 | 1.0);
- Sort::MultipleFields (docs) - sort hashes on multiple fields, eg by author then by title (previous versions: 1.0 | 0.001_01);
- Games::SGF::Go::Rotator (docs) - rotate an SGF record of a game (previous versions: 1.2 | 1.1 | 1.0);
- Devel::CheckApplicationCapabilities (docs) - figure out what optional extras certain applications have built in (previous versions: 1.0);
- Data::Hexdumper (docs) - a module to make arbitrary binary data human-readable (previous versions: 3.00 | 2.01 | 2.0 | 1.4 | 1.3 | 1.2 | 1.1 | 1.0.1 | 0.01);
- DBIx::Class::QuaryLog::WithStackTrace (docs) - extends DBIx::Class::QueryLog to also log a stacktrace so you can easily see where in your application your database queries are coming from;
- Palm::ProjectGutenberg (docs) - module and script for easily converting e-books downloaded from Project Gutenberg into Palm Doc format. (see it in action) (previous versions: 1.01 | 1.0);
- Devel::CheckLib (docs) - check that you can link to a particular library (previous versions: 0.699_001 | 0.6 | 0.5 | 0.4 | 0.3 | 0.2);
- File::Overwrite (docs) - overwrite the contents of a file and optionally unlink it, thus protecting against simple file recovery tools. You must read the section in the documentation entitled SECURITY. (previous versions: 1.1 | 1.0);
- XML::Tiny::DOM (docs) - a DOMmish front-end for XML::Tiny (previous versions: 1.0);
- Bryar (docs) - a journalling (or blogging) program originally written by Simon Cozens, which I took over maintenance for. I have now handed the baton on to someone else. (see it in action) (previous versions: 3.0);
- WWW::Facebook::Go::SGF (docs) - extract SGF records of Go games played on Facebook (see it in action);
- DBIx::Class::SingletonRows (docs) - make rows from the database into singleton objects (previous versions: 0.1);
- CPU::Z80::Assembler (docs) - a macro assembler for the Z80 micro-processor - no longer maintained by me, see the CPAN for more recent versions (previous versions: 1.02 | 1.01 | 1.0);
- Games::Dice::Advanced (docs) - simulates rolling dice, including loaded dice and dice with impossible numbers of sides (previous versions: 1.0);
- Statistics::SerialCorrelation (docs) - calculate the serial correlation co-efficient for an array (previous versions: 1.0);
- Tie::Hash::Longest (docs) - a hash which remembers its longest key and value, written in response to this discussion on perlmonks (previous versions: 1.0);
- Acme::Scurvy::Whoreson::BilgeRat (docs) - a multilingual insult generator, which takes pluggable backends for languages. The example plugin implements piratical insults and, like the name of the module, is in honour of International Talk Like A Pirate Day. Arrrrr! (previous versions: 1.0);
- Acme::Licence (docs) - easily apply the licence of your choice to your code;
- NestedMap (docs) - nest map{}s within each other, with access to outer map{}s' state from within inner maps;
- Acme::Pony -
turns your code into an ASCII-art pony. Note that this module used to
be known as Pony, and was renamed to fit the new convention that silly
modules go in the Acme::* hierarchy. Step one of my master plan to
take over the world is now complete, as I have achieved
infamy.
(previous versions:
1.0.1 |
1.1 |
1.1.1);
- Tie::Hash::Rank (docs) - a hash which ranks the data you throw at it (previous versions: 1.0);
- Tie::Scalar::Decay (docs) - variables that decay. It defaults to creating a scalar which decays in a manner similar to radioactive decay (previous versions: 1.1 | 1.0);