---
name: "Badger::Filesystem::Base"
section: "3pm"
platform: "linux"
package: "libbadger-perl"
version: "0.16-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Badger::Filesystem::Base"
---

# Badger::Filesystem::Base(3pm)

common functionality for Badger::Filesystem modules

## NAME

Badger::Filesystem::Base - common functionality for Badger::Filesystem modules

## SYNOPSIS

```
    package Badger::Filesystem::SomeOtherModule;
    use base 'Badger::Filesystem::Base'
    # now this module inherits the base class functionality
```

## DESCRIPTION

`"Badger::Filesystem::Base"` is a base class module that defines some common functionality shared by Badger::Filesystem and Badger::Filesystem::Path (which itself is the base class for Badger::Filesystem::Directory and  Badger::Filesystem::File.

## METHODS

### init\_path(\\%config)

Initialisation method which examines the filesystem path specified as a  parameter and splits it into volume, directory and name.

### init\_options(\\%config)

Initialisation method which handles the `"encoding"` and `"codec"` options.

### encoding($enc)

This method can be used to get or set the default encoding for a file.

```
    $file->encoding(':utf8');
```

The encoding will affect all operations that read data from, or write data to the file.

The method can also be used to get or set the default encoding for a  directory or filesystem.  In this case the option specifies the default  encoding for file contained therein.

```
    $directory->encoding(':utf8');
    $file = $directory->file('foo.txt');        # has :utf8 encoding set
```

### codec()

This method can be used to get or set the codec used to serialise data to and from a file via the **data()** method.  The codec should be specified by name, using any of the names that Badger::Codecs recognises or can  load.

```
    $file->codec('storable');

    # first save the data to file
    $file->data($some_data_to_save);

    # later... load the data back out
    my $data = $file->data;
```

You can use chained codec specifications if you want to pass the data  through more than one codec.

```
    $file->code('storable+base64');
```

See Badger::Codecs for further information on codecs.

As with **encoding()**, this method can also be used to get or set the default codec for a directory or filesystem.

```
    $directory->codec('json');
    $file = $directory->file('foo.json');       # has json codec set
```

## AUTHOR

Andy Wardley \<http://wardley.org/\>

## COPYRIGHT

Copyright (C) 2009 Andy Wardley. All rights reserved.

## SEE ALSO

Badger::Filesystem,  Badger::Filesystem::Path, Badger::Filesystem::Directory, Badger::Filesystem::File.
