---
name: "WWW::Shorten::Simple"
section: "3pm"
platform: "linux"
package: "libwww-shorten-simple-perl"
version: "0.02-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/WWW::Shorten::Simple"
---

# WWW::Shorten::Simple(3pm)

Factory wrapper around WWW::Shorten to avoid imports

## NAME

WWW::Shorten::Simple - Factory wrapper around WWW::Shorten to avoid imports

## SYNOPSIS

```
  use WWW::Shorten::Simple;
  my $svc = WWW::Shorten::Simple->new('TinyURL');
  my $short_url = $svc->shorten($long_url);
  my $canon_url = $svc->unshorten($short_url);
```

## DESCRIPTION

WWW::Shorten::Simple is a wrapper (factory) around WWW::Shorten so that you can create an object representing each URL shortening service, instead of *import*ing `"makeashorterlink"` function into your namespace.

This allows you to call multiple URL shortening services in one package, for instance to call WWW::Shorten::RevCanonical to extract rev="canonical", fallback to bit.ly if username and API key are present, and then finally to TinyURL.

```
  use WWW::Shorten::Simple;
  my @shorteners = (
      WWW::Shorten::Simple->new('RevCanonical'),
      WWW::Shorten::Simple->new('Bitly', $bitly_username, $bitly_api_key),
      WWW::Shorten::Simple->new('TinyURL'),
  );
  my $short_url;
  for my $shortener (@shorteners) {
      $short_url = eval { $shortener->shorten($long_url) } # eval to ignore errors
          and last;
  }
```

This wrapper works with most WWW::Shorten implementation that implements the default `"makeashorterlink"` and `"makealongerlink"` functions. The options should be able to be passed as an optional parameters to `"makeashorterlink"` function.

## METHODS

- new

  ```
    $svc = WWW::Shorten::Simple->new('TinyURL');
    $svc = WWW::Shorten::Simple->new('Bitly', $bitly_username, $bitly_api_key);
  ```

  Creates a new WWW::Shoten::Simple object. Takes a subclass name and optional parameters to `"makeashorterlink"` call.

- shorten

  ```
    my $short_url = $svc->shorten($url);
  ```

  Shortens the given URL. Aliases: `"makeashorterlink"`, `"short_link"`

- unshorten

  ```
    my $long_url = $svc->unshorten($short_url);
  ```

  Unshortens the given URL. Aliases: `"makealongerlink"`, `"long_link"`

## AUTHOR

Tatsuhiko Miyagawa \<miyagawa@bulknews.net\>

## LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

WWW::Shorten, WWW::Shorten::RevCanonical
