Config::MVP::Assembler::WithBundles(3) User Contributed Perl Documentation Config::MVP::Assembler::WithBundles(3)

# [DESCRIPTION](#DESCRIPTION)

Config::MVP::Assembler::WithBundles is a role to be composed into a Config::MVP::Assembler subclass. It allows some sections of configuration to be treated as bundles. When any section is ended, if that section represented a bundle, its bundle contents will be unrolled and will replace it in the sequence.

A package is considered a bundle if "package\_bundle\_method" returns a defined value (which is the name of a method that will be called on that package to retrieve its bundle config).

```
  my $method = $assembler->package_bundle_method($package);
```

The default implementation looks for a method called "mvp\_bundle\_config", but "package\_bundle\_method" can be replaced with one that returns the name of a different bundle-identifying method-name.

Bundles are expanded by a call to the assembler's "replace\_bundle\_with\_contents" method, like this:

```
  $assembler->replace_bundle_with_contents($section, $method);
```

## [replace\_bundle\_with\_contents](#replace_bundle_with_contents)

The default "replace\_bundle\_with\_contents" method deletes the section from the sequence. It then gets a description of the new sections to introduce, like this:

```
  my @new_config = $bundle_section->package->$method({
    name    => $bundle_section->name,
    package => $bundle_section->package,
    payload => $bundle_section->payload,
  });
```

(We pass a hashref rather than a section so that bundles can be expanded synthetically without having to laboriously create a new Section.)

The returned @new\_config is a list of arrayrefs, each of which has three entries:

```
  [ $name, $package, $payload ]
```

Each arrayref is converted into a section in the sequence. The $payload should be an arrayref of name/value pairs to be added to the created section.

2026-10-25 perl v5.44.0

---

Document: Config::MVP::Assembler::WithBundles(3pm) from perl-config-mvp 2.200015-r1 (Chainguard OS)
Source: https://github.com/rjbs/Config-MVP
