---
name: "Arch::SharedCache"
section: "3pm"
platform: "linux"
package: "libarch-perl"
version: "0.5.2-2"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/Arch::SharedCache"
---

# Arch::SharedCache(3pm)

a synchronized data structure (map) for IPC

## NAME

Arch::SharedCache - a synchronized data structure (map) for IPC

## SYNOPSIS

```
    use Arch::SharedCache;
    my $cache = Arch::SharedCache->new(
        dir => '/tmp/dir-listings',
        max_size   => 100,
        expiration => 600,  # 10 minutes
    );
    sub ls_long { scalar `ls -l $_[0]` }
    my $user_dir = '/usr/share';
    $cache->store($user_dir => ls_long($user_dir));
    $cache->fetch_store(sub { ls_long($_[0]) }, qw(/tmp /bin /usr/share));
    printf "Cached listing of $user_dir:\n%s", $cache->fetch($user_dir);
    $cache->delete($user_dir);
    # examine /tmp/dir-listings/ after running this script
    # see also synopsys of Arch::SharedIndex
```

## DESCRIPTION

Arch::SharedCache provides an Arch::SharedIndex implementation using a single file per value.

## METHODS

The following methods are available:

**new**.

Other methods are documented in Arch::SharedIndex.

- **new** *options*

  Create a new Arch::SharedCache object.  *options* is a hash of options.

  - **dir**

    The cache directory used to store data.  Will be created if it doesn't exist.

  - **index\_file**

    Name of the index file for the cache.  Defaults to `"`**dir**`/.index"`.

## BUGS

Awaiting for your reports.

## AUTHORS

Mikhael Goikhman (migo@homemail.com--Perl-GPL/arch-perl--devel).

Enno Cramer (uebergeek@web.de--2003/arch-perl--devel).

## SEE ALSO

For more information, see Arch::SharedIndex.
