# CommunityToolkit.Aspire.Hosting.Perl

- Module: `CommunityToolkit.Aspire.Hosting.Perl`
- Version: `13.4.0`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire)
- Functions: `12`
- Types: `1`

## Types

- [PerlAppResource](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/perlappresource.md) -- `handle` - 8 members

## Functions

- [addPerlApi](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/addperlapi.md) -- `method` -- Adds a Perl API server resource (e.g., Mojolicious, Dancer2) to the application model. Passes the `daemon` subcommand so HTTP frameworks start a listener.
- [addPerlExecutable](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/addperlexecutable.md) -- `method` -- Adds a Perl executable (compiled binary or PAR-packed application) to the application model. The executable is run directly rather than through the `perl` interpreter.
- [addPerlModule](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/addperlmodule.md) -- `method` -- Adds a Perl module to the application model. The module is executed using `perl -MModule::Name -e "Module::Name->run()"`.
- [addPerlScript](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/addperlscript.md) -- `method` -- Adds a Perl script resource (worker, CLI tool, background service) to the application model.
- [withCarton](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withcarton.md) -- `method` -- Configures the Perl application to use Carton as its package manager. Carton manages dependencies via `cpanfile` and a lock file (`cpanfile.snapshot`), enabling reproducible builds. Use `WithProjectDependencies``1` to run `carton install` at startup.
- [withCpanMinus](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withcpanminus.md) -- `method` -- Configures the Perl application to use cpanm (App::cpanminus) as its package manager instead of the default cpan. Call this before `WithPackage``1` to change how packages are installed.
- [withLocalLib](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withlocallib.md) -- `method` -- Configures the Perl application to use a local::lib directory for module isolation. Sets `PERL5LIB`, `PERL_LOCAL_LIB_ROOT`, `PERL_MM_OPT`, and `PERL_MB_OPT` environment variables so that modules are resolved from and installed into the local directory.
- [withPackage](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withpackage.md) -- `method` -- Adds a Perl package (module) to be installed before the application starts. Uses the configured package manager: cpan by default, or cpanm if `WithCpanMinus``1` was called.
- [withPerlbrew](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withperlbrew.md) -- `method` -- Configures the Perl application to use a specific perlbrew-managed Perl version.
- [withPerlbrewEnvironment](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withperlbrewenvironment.md) -- `method` -- Configures the Perl application to use a specific perlbrew-managed Perl version. This resolves the Perl executable from the perlbrew installation and updates the resource's command and environment variables so that all subsequent operations use the specified Perl version.
- [withPerlCertificateTrust](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withperlcertificatetrust.md) -- `method` -- Configures certificate trust for the Perl application by setting SSL/TLS environment variables that common Perl HTTP libraries respect. Sets `SSL_CERT_FILE` (IO::Socket::SSL / LWP), `PERL_LWP_SSL_CA_FILE` (LWP::UserAgent), and `MOJO_CA_FILE` (Mojolicious) to the certificate bundle path provided by Aspire.
- [withProjectDependencies](/reference/api/typescript/communitytoolkit.aspire.hosting.perl/withprojectdependencies.md) -- `method` -- Configures project-level dependency installation for the Perl application. Runs the appropriate install command based on the active package manager: - - If the active package manager is `cpan` (the default), it is automatically switched to `cpanm` since `cpan` does not support `--installdeps`.
