View on
Jos Boumans > Module-Load-0.10 > Module::Load



Annotate this POD


New  5
Open  1
View/Report Bugs
Module Version: 0.10   Source   Latest Release: Module-Load-0.32


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


        use Module::Load;

    my $module = 'Data:Dumper';
    load Data::Dumper;      # loads that module
    load 'Data::Dumper';    # ditto
    load $module            # tritto
    my $script = 'some/'
    load $script;
    load 'some/';      # use quotes because of punctuations
    load thing;             # try 'thing' first, then ''

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


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.

load elimates the need for this overhead and will just DWYM.

Rules ^

load has the following rules to decide what it thinks you want:

Caveats ^

Because of a bug in perl (#19213), at least in version 5.6.1, we have to hardcode the path seperator for a require on Win32 to be /, like on Unix rather than the Win32 \. Otherwise perl will not read it's own %INC accurately double load files if they are required again, or in the worst case, core dump.

Module::Load can not do implicit imports, only explicit imports. (in other words, you always have to specify expliclity what you wish to import from a module, even if the functions are in that modules' @EXPORT)


This module by Jos Boumans <>.

Thanks to Jonas B. Nielsen for making explicit imports work.


This module is copyright (c) 2002 Jos Boumans <>. All rights reserved.

This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.

syntax highlighting: