---
name: "Plack::Session::Store::File"
section: "3pm"
platform: "linux"
package: "libplack-middleware-session-perl"
version: "0.34-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Plack::Session::Store::File"
---

# Plack::Session::Store::File(3pm)

Basic file-based session store

## NAME

Plack::Session::Store::File - Basic file-based session store

## SYNOPSIS

```
  use Plack::Builder;
  use Plack::Middleware::Session;
  use Plack::Session::Store::File;
  my $app = sub {
      return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'Hello Foo' ] ];
  };
  builder {
      enable 'Session',
          store => Plack::Session::Store::File->new(
              dir => '/path/to/sessions'
          );
      $app;
  };
  # with custom serializer/deserializer
  builder {
      enable 'Session',
          store => Plack::Session::Store::File->new(
              dir          => '/path/to/sessions',
              # YAML takes it's args the opposite order
              serializer   => sub { YAML::DumpFile( reverse @_ ) },
              deserializer => sub { YAML::LoadFile( @_ ) },
          );
      $app;
  };
```

## DESCRIPTION

This implements a basic file based storage for session data. By default it will use Storable to serialize and deserialize the data, but this can be configured easily.

This is a subclass of Plack::Session::Store and implements its full interface.

## METHODS

- **new ( %params )**

  The `%params` can include *dir*, *serializer* and *deserializer* options. It will check to be sure that the *dir* is writeable for you.

- **dir**

  This is the directory to store the session data files in, if nothing is provided then File::Spec's **tmpdir()** is used to determine the system's temp dir.

- **serializer**

  This is a CODE reference that implements the serialization logic. The CODE ref gets two arguments, the `$value`, which is a HASH reference to be serialized, and the `$file_path` to save it to. It is not expected to return anything.

- **deserializer**

  This is a CODE reference that implements the deserialization logic. The CODE ref gets one argument, the `$file_path` to load the data from. It is expected to return a HASH reference.

## BUGS

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.

## AUTHOR

Stevan Little \<stevan.little@iinteractive.com\>

## COPYRIGHT AND LICENSE

Copyright 2009, 2010 Infinity Interactive, Inc.

\<http://www.iinteractive.com\>

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