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


WWW::Shorten - Interface to URL shortening sites.


  use WWW::Shorten 'BabyURL';
  use WWW::Shorten 'Linkz';
  use WWW::Shorten 'MakeAShorterLink';
  use WWW::Shorten 'Metamark';
  use WWW::Shorten 'NotLong';
  use WWW::Shorten 'OneShortLink';
  use WWW::Shorten 'Shorl';
  use WWW::Shorten 'SmLnk';
  use WWW::Shorten 'SnipURL';
  use WWW::Shorten 'TinyClick';
  use WWW::Shorten 'TinyLink';
  use WWW::Shorten 'TinyURL';
  use WWW::Shorten 'URLjr';
  use WWW::Shorten 'V3';

  # These 3 are now inactive and will give an
  # error if you try to use them.
  use WWW::Shorten 'EkDk';
  use WWW::Shorten 'qURL';
  use WWW::Shorten 'ShortLink';

  # Individual modules have have their
  # own syntactic varations.

  # See the documentation for the particular
  # module you intend to use for details, trips
  # and traps.

  $short_url = makeashorterlink($long_url);

  $long_url  = makealongerlink($short_url);

  # If you don't like the function names:
  use WWW::Shorten 'SnipURL', ':short';
  $short_url = short_link( $long_url );
  $long_url = long_link( $short_url );


A Perl interface to URL shortening sites. These sites maintain databases of long URLs, each of which has a unique identifier.


The function makeashorterlink will call the relevant web site passing it your long URL and will return the shorter version.

The function makealongerlink does the reverse. makealongerlink will accept as an argument either the full shortened URL or just the identifier.

If anything goes wrong, then either function will return undef.


makeashorterlink, makealongerlink

Or, if you specify :short on the import line, you instead get short_link and long_link. If you explicitly want the default set, use :default.


A very simple program called shorten is supplied in the distribution's bin folder. This program takes a URL and gives you a shortened version of it.


Adam Kessel wrote shorlfilter, a program that uses WWW::Shorten to filter a file, converting long URLs to short ones.

There is also a bin directory in this distribution which contains a sample program.

FURTHER INFORMATION has a collection of related resources: articles, services, programs (both to use services and to run services). It's a Wiki --- feel free to edit it.


Similar Aim

WWW::MakeAShorterLink is what this module was originally based upon. That module is obsoleted by WWW::Shorten::MakeAShorterLink, one of the many subclasses of WWW::Shorten.

Same Area, Different Purpose

CGI::Shorten provides building blocks for you to create your own URL shortening service. It provides routines to shoretn a URL, lengthen one, and it keeps a store. Nice and easy.


Dave Cross for WWW::MakeAShorterLink

Alex Page for the original LWP hacking on which Dave based his code.

Simon Batistoni for giving the makealongerlink idea to Dave.

Eric Hammond for writing the NotLong variant.

Shashank Tripathi <> for providing both and advice on the module.

Kevin Gilbertson (Gilby) supplied information on the TinyURL API.

Matt Felsen (mattf) wanted shorter function names.

Ask Bjoern Hansen for providing both and advice on the module.

Martin Thurn for helping me notice a bug and for a suggestion regarding

Jon and William (jon and wjr at respectively) for providing

P J Goodwin for providing the code for WWW::Shorten::OneShortLink.

And especial thanks to all providers of these services.


Support for this module is provided via the email list. See for more details.

Alternatively, log them via the CPAN RT system via the web or email:
    ( shorter URL: )

This makes it much easier for me to track things and thus means your problem is less likely to be neglected.


WWW::Shorten::NotLong copyright © Eric Hammond <>.

WWW::Shorten::MakeAShorterLink copyright © Dave Cross <>.

Other modules copyright © Iain Truskett, 2002-2003. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.000 or, at your option, any later version of Perl 5 you may have available.

The full text of the licences can be found in the Artistic and COPYING files included with this module, or in perlartistic and perlgpl as supplied with Perl 5.8.1 and later.


Iain Truskett <>

Based on WWW::MakeAShorterLink by Dave Cross <>


perl, CGI::Shorten.