---
name: "Module::Install::External"
section: "3pm"
platform: "linux"
package: "perl-module-install"
version: "1.21-6"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Module::Install::External"
---

# Module::Install::External(3pm)

Specify dependencies on external non-Perl things

## NAME

Module::Install::External - Specify dependencies on external non-Perl things

## DESCRIPTION

`"Module::Install::External"` provides command that allow you to declaratively specify a dependency on a program or system that is not Perl.

The commands it provides are similar to those in Module::Install::Can, except that they implement an explicit dependency, in addition to just working out if the particular thing is available.

## COMMANDS

### requires\_xs

```
  requires_xs;
```

The `"requires_xs"` command explicitly specifies that a C compiler and the perl header files are required in order to build (at *make*-time) the distribution (specifically XS files).

It does not take any params, and aborts the *Makefile.PL* execution in a way that an automated installation or testing system will interpret as a `"NA"` ("not applicable to this platform") result.

This may be changed to an alternative abort result at a later time.

Returns true as a convenience.

### requires\_external\_cc

```
  requires_external_cc;
```

The `"requires_external_cc"` command explicitly specifies that a C compiler is required in order to build (at *make*-time) the distribution.

It does not take any params, and aborts the *Makefile.PL* execution in a way that an automated installation or testing system will interpret as a `"NA"` ("not applicable to this platform") result.

This may be changed to an alternative abort result at a later time.

Returns true as a convenience.

### requires\_external\_bin

```
  requires_external_bin 'cvs';
```

The `"requires_external_bin"` command takes the name of a system command or program, similar to the `"can_run"` command, except that `"requires_external_bin"` checks in a way that is a declarative explicit dependency.

The takes a single param of the command/program name, and aborts the `"Makefile.PL"` execution in a way that an automated installation or testing system will interpret as a `"NA"` ("not applicable to this platform") result.

Returns true as a convenience.

## TO DO

Work out how to save the external dependency metadata, in agreement with the larger Perl community.

Implement the agreed external dependency metadata solution.

## AUTHORS

Adam Kennedy \<adamk@cpan.org\>

## SEE ALSO

Module::Install

## COPYRIGHT

Copyright 2006 Adam Kennedy.

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\>
