---
name: "Dist::Metadata::Struct"
section: "3pm"
platform: "linux"
package: "libdist-metadata-perl"
version: "0.927-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Dist::Metadata::Struct"
---

# Dist::Metadata::Struct(3pm)

Enable Dist::Metadata for a data structure

## NAME

Dist::Metadata::Struct - Enable Dist::Metadata for a data structure

## VERSION

version 0.927

## SYNOPSIS

```
  my $dm = Dist::Metadata->new(struct => {
    files => {
      'lib/Mod.pm' => 'package Mod; sub something { ... }',
      'README'     => 'this is a fake dist, useful for testing',
    }
  });
```

## DESCRIPTION

This is a subclass of Dist::Metadata::Dist to enable mocking up a dist from perl data structures.

This is mostly used for testing but might be useful if you already have an in-memory representation of a dist that you'd like to examine.

It's probably not very useful on it's own though, and should be used from "new" in Dist::Metadata.

## METHODS

### new

```
  $dist = Dist::Metadata::Struct->new(files => {
    'lib/Mod.pm' => 'package Mod; sub something { ... }',
  });
```

Accepts a `"files"` parameter that should be a hash of `"{ name => content, }"`. Content can be a string, a reference to a string, or an IO object.

### default\_file\_spec

`"Unix"` is the default for consistency/simplicity but `"file_spec"` can be overridden in the constructor.

### file\_content

Returns the string content for the specified name.

### find\_files

Returns the keys of the `"files"` hash.

## AUTHOR

Randy Stauner \<rwstauner@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Randy Stauner.

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