---
name: "HTTP::Link"
section: "3pm"
platform: "linux"
package: "libhttp-link-perl"
version: "0.001-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTTP::Link"
---

# HTTP::Link(3pm)

RFC5988 Web Linking

## NAME

HTTP::Link - RFC5988 Web Linking

## VERSION

version 0.001

## METHODS

### new

Return a new Web Link as string

```
    my $link = HTTP::Link->new('/TheBook/Chapter/2',
        relation => 'next',
        title => 'next chapter',
    );
    # Result:
    # </TheBook/Chapter/2>; rel="next"; title="next chapter"
```

**Arguments**:

- •

  `$iri` An internationalized resource identifier. This is a target uri reference.

- •

  `%options` Additional parameters (see below)

**Parameters** for `%options`:

- •

  `"relation"`

  Possible relation types are: *alternate*, *appendix*, *bookmark*, *chapter*, *contents*, *copyright*, *current*, *describedby*, *edit*, *edit-media*, *enclosure*, *first*, *glossary*, *help*, *hub*, *index*, *last*, *latest-version*, *license*, *next*, *next-archive*, *payment*, *prev*, *predecessor-version*, *previous*, *prev-archive*, *related*, *replies*, *section*, *self*, *service*, *start*, *stylesheet*, *subsection*, *successor-version*, *up*, *version-history*, *via*, *working-copy*, *working-copy-of* and others (see IANA registry)

- •

  `"extension"`

  An extension for a relation type.

- •

  `"anchor"`

  An anchor for the context IRI.

- •

  `"hreflang"`

  A hint indicating what the language of the destination's content is

- •

  `"media"`

  Intended destination medium, like in a CSS media query.

- •

  `"title"`

  A human-readable label. This will be encoded with MIME::EcoEncode.

- •

  `"type"`

  A hint indication the most possible MIME type of the destination's content.

### rel

Shortcut method for "new" with a different signature:

```
    HTTP::Link->rel('/TheBook/Chapter/2',
        start => '/TheBook/Chapter/0'
    );
    # same as
    HTTP::Link->new('/TheBook/Chapter/2',
        relation => 'start',
        extension => '/TheBook/Chapter/0',
    );
```

**Arguments**:

- •

  `$iri`

  See "new"

- •

  `$relation`

  Will appended to `%options` by `" relation ="` `$relation` \>\>

- •

  `$extension`

  Will appended to `%options` by `" extension ="` `$extension` \>\>

- •

  `%options`

  See "new"

### multi

When more than one link should be provides, this method is useful. It accepts a hash or a HashRef with a mapping of IRIs to options.

```
    HTTP::Link->multi(
        '/TheBook/Chapter/2' => {
            relation => 'previous'
        },
        '/TheBook/Chapter/4' => {
            relation => 'next'
        },
    );
    # Result:
    # </TheBook/Chapter/2>; rel="previous", </TheBook/Chapter/4>; rel="next"
```

### parse

Parses a Link-header field a returns all founded links as a list of HashRefs.

```
    my @links = HTTP::Link->parse(<<EOT);
    </TheBook/Chapter/2>; rel="previous", </TheBook/Chapter/4>; rel="next"
    EOT
    # Result:
    @links = ({
        iri => '/TheBook/Chapter/2',
        relation => 'previous'
    },{
        iri => '/TheBook/Chapter/4',
        relation => 'next'
    });
```

### parse\_hash

Parses a Link-header field a returns all founded links as a HashRef with IRIs as key:

```
    my %links = HTTP::Link->parse_hash(<<EOT);
    </TheBook/Chapter/2>; rel="previous", </TheBook/Chapter/4>; rel="next"
    EOT
    # Result:
    %links = (
        '/TheBook/Chapter/2' => {
            relation => 'previous'
        },
        '/TheBook/Chapter/4' => {
            relation => 'next'
        }
    );
```

## FUNCTIONS

### httplink\_new

Wrapper for `"HTTP::Link->"`"new"

### httplink\_rel

Wrapper for `"HTTP::Link->"`"rel"

### httplink\_multi

Wrapper for `"HTTP::Link->"`"multi"

### httplink\_parse

Wrapper for `"HTTP::Link->"`"parse"

### httplink\_parse\_hash

Wrapper for `"HTTP::Link->"`"parse\_hash"

## BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/zurborg/libhttp-link-perl/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

## AUTHOR

David Zurborg \<zurborg@cpan.org\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by David Zurborg.

This is free software, licensed under:

```
  The ISC License
```
