---
name: "Module::Compile::Optimize"
section: "3pm"
platform: "linux"
package: "libmodule-compile-perl"
version: "0.35-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/Module::Compile::Optimize"
---

# Module::Compile::Optimize(3pm)

Perl Module Optimization

## NAME

Module::Optimize - Perl Module Optimization

## SYNOPSIS

```
    package Foo;
    use Module::Optimize -base;
    sub pmc_optimize {
        my ($self, $source) = @_;
        # Convert perl5 $source into semantically equivalent $compiled_output
        return $compiled_output;
    }
```

In `"Bar.pm"`:

```
    package Bar;
    use Foo;
```

or lexically:

```
    package Bar;
    {
        use Foo;
        ...
    }
```

To compile `"Bar.pm"` into `"Bar.pmc"`:

```
    perl -c Bar.pm
```

## DESCRIPTION

This module provides a system for writing modules that *compile* other Perl modules.

Modules that use these compilation modules get compiled into some altered form the first time they are run. The result is cached into `".pmc"` files.

Perl has native support for `".pmc"` files. It always checks for them, before loading a `".pm"` file.

You get the following benefits:

## SEE ALSO

Module::Compile

## AUTHORS

- •

  Ingy döt Net \<ingy@cpan.org\>

- •

  Audrey Tang \<audreyt@audreyt.org\>

## COPYRIGHT

Copyright 2006-2014. Ingy döt Net.

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

See \<http://www.perl.com/perl/misc/Artistic.html\>
