You are viewing the version of this documentation from Perl 5.41.6. This is a development version of Perl.

CONTENTS

NAME

Module::Load - runtime require of both modules and files

SYNOPSIS

use Module::Load;

my $module = 'Data::Dumper';

load Data::Dumper;     # loads that module, but not import any functions
                       # -> cannot use 'Dumper' function

load 'Data::Dumper';   # ditto
load $module           # tritto

autoload Data::Dumper; # loads that module and imports the default functions
                       # -> can use 'Dumper' function

my $script = 'some/script.pl'
load $script;
load 'some/script.pl';  # use quotes because of punctuations

load thing;             # try 'thing' first, then 'thing.pm'

load CGI, ':all';       # like 'use CGI qw[:standard]'

DESCRIPTION

Module::Load eliminates the need to know whether you are trying to require either a file or a module.

If you consult perldoc -f require you will see that require will behave differently when given a bareword or a string.

In the case of a string, require assumes you are wanting to load a file. But in the case of a bareword, it assumes you mean a module.

This gives nasty overhead when you are trying to dynamically require modules at runtime, since you will need to change the module notation (Acme::Comment) to a file notation fitting the particular platform you are on.

Module::Load eliminates the need for this overhead and will just DWYM.

Difference between load and autoload

Module::Load imports the two functions - load and autoload

autoload imports the default functions automatically, but load do not import any functions.

autoload is usable under BEGIN{};.

Both the functions can import the functions that are specified.

Following codes are same.

load File::Spec::Functions, qw/splitpath/;

autoload File::Spec::Functions, qw/splitpath/;

FUNCTIONS

load

Loads a specified module.

See "Rules" for detailed loading rule.