System::Sub::AutoLoad(3pm)

System::Sub::AutoLoad3pm

Auto-wrap external commands as dwim subs

Usage

Basic usage

Any unknown sub will become a "System::Sub".

    use System::Sub::AutoLoad;
    my $hostname = hostname();

Usage with forward declaration

Allows to avoid using parentheses. "System::Sub" import stays lazy.

    use System::Sub::AutoLoad qw(hostname);
    my $hostname = hostname;

Usage with forward declaration command options

Options definitions will be checked lazily at the first call to the AUTOLOAD for that sub.

    use System::Sub::AutoLoad hostname => [ 0 => '/bin/hostname' ];
    my $hostname = hostname;

Version

version 0.162800

Overview

Any unknown sub in your code will be transformed into a "System::Sub" at its first call. This is lazy <http://en.wikipedia.org/wiki/Lazy_evaluation> import for "System::Sub".

To avoid using parentheses after the sub name, you usually have to predeclare the sub with either a forward declaration (a sub without body such as "sub foo;") or with the "subs" module. With "Sytem::Sub::AutoLoad" you can simply list the subs names on the "use" line and that will be done for you.

You can also pass "System::Sub" options to the sub, but they will be lazily analysed: this is the full "System::Sub" power, but with lazy import.

Implementation details

This module exports an AUTOLOAD sub that will import the sub with "System::Sub" at its first call.

Releases

4 releases since Debian 10 (Buster); the text changed 2 times.

  1. 10
  2. 11
  3. 12–13

Author

Olivier Mengué, "[email protected]".

From libsystem-sub-perl 0.162800-3 in Debian 13 (Trixie). Parsed by carta from the page's man source.