The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
use strict;
use warnings;
use Test::More tests => 4;
use Test::WWW::Mechanize::PSGI;
use CGI::Cookie;

my $hello = Test::WWW::Mechanize::PSGI->new(
    app => do {
        my $cookie_store = {};
        my $sid          = 123456;
        sub {
            my $env = shift;
            my %cookies = CGI::Cookie->parse( $env->{HTTP_COOKIE} || '' );
            if ( my $cookie = $cookies{sid} ) {
                my $content = $cookie_store->{ $cookies{sid}->value };
                return [
                    200, [ 'Set-Cookie' => "sid=$sid; path=/" ],
                    [$content]
                    ],
                    ;
            }
            else {
                $cookie_store->{$sid} = "OK";
                return [
                    200, [ 'Set-Cookie' => "sid=$sid; path=/" ],
                    ['Hello World']
                    ],
                    ;
            }
            }
    },
);
$hello->get_ok('/');
$hello->content_is('Hello World');
$hello->get_ok('/');
$hello->content_is('OK');