---
name: "HTTP::CookieMonster::Cookie"
section: "3pm"
platform: "linux"
package: "libhttp-cookiemonster-perl"
version: "0.11-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTTP::CookieMonster::Cookie"
---

# HTTP::CookieMonster::Cookie(3pm)

Cookie representation used by HTTP::CookieMonster

## NAME

HTTP::CookieMonster::Cookie - Cookie representation used by HTTP::CookieMonster

## VERSION

version 0.11

## SYNOPSIS

```
    use HTTP::CookieMonster::Cookie;
    my $cookie = HTTP::CookieMonster::Cookie->new(
        key       => 'cookie-name',
        val       => 'cookie-val',
        path      => '/',
        domain    => '.somedomain.org',
        path_spec => 1,
        secure    => 0,
        expires   => 1376081877
    );
    use WWW::Mechanize;
    use HTTP::CookieMonster;
    my $mech = WWW::Mechanize->new;
    my $monster = HTTP::CookieMonster->new( cookie_jar => $mech->cookie_jar );
    $monster->set_cookie( $cookie );
    $mech->get('https://example.com');    # passes $cookie in request
```

## DESCRIPTION

This module is intended to be used by HTTP::CookieMonster to represent cookies found in an HTTP::Cookies cookie\_jar.  To keep things familiar, I have chosen method names which reflect the positional parameter names laid out in the `$cookie_jar`-\>scan( \\&callback ) documentation.

Not being intimately familiar with the HTTP cookie spec, I haven't forced validation or default values on any attributes, so please be aware that the burden is on the user to provide "correct" data if you are using this module directly.

I have provided some sample values below.  To get a better idea of what is required, try visiting a few sites and dumping their cookies.

```
    use Data::Printer;
    my $mech = WWW::Mechanize->new;
    $mech->get( 'http://www.google.ca' );
    my $monster = HTTP::CookieMonster->new( cookie_jar => $mech->cookie_jar );
    p $monster->all_cookies;
```

### version

```
    $cookie->version( 0 );
```

### key

The name of the cookie.

```
    $cookie->key( "session_id" );
```

### val

The value of the cookie.

```
    $cookie->val( "random_stuff" );
```

If you are creating a new cookie, you should escape the value first.

```
    use URI::Escape qw( uri_escape );
    $cookie->value( uri_escape( 'random_stuff' ) );
```

### path

```
    $cookie->path( "/" );
```

### domain

```
    $cookie->domain( ".google.ca" );
```

### port

### path\_spec

```
    $cookie->path_spec( 1 );
```

### secure

```
    $cookie->secure( 1 );
```

### expires

```
    $cookie->expires( 1407696193 );
```

### discard

### hash

```
    $cookie->hash( { HttpOnly => undef } );
```

## SEE ALSO

This is mainly useful for creating cookies to be used by LWP::UserAgent and WWW::Mechanize classes.  If you need to create cookies to set via headers, have a look at Cookie::Baker.

## AUTHOR

Olaf Alders \<olaf@wundercounter.com\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Olaf Alders.

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