Module::Install::External(3) User Contributed Perl Documentation Module::Install::External(3)

# [NAME](#NAME)

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

# [DESCRIPTION](#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](#COMMANDS)

## [requires\_xs](#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)

```
  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)

```
  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](#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](#AUTHORS)

Adam Kennedy &lt;adamk@cpan.org&gt;

# [SEE ALSO](#SEE_ALSO)

Module::Install

# [COPYRIGHT](#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 &lt;http://www.perl.com/perl/misc/Artistic.html&gt;

2026-08-29 perl v5.44.0

---

Document: Module::Install::External(3pm) from perl-module-install 1.21-r10 (Chainguard OS)
Source: https://github.com/Perl-Toolchain-Gang/Module-Install
