The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Module::Spec::V1 - Load modules based on specifications V1

VERSION

version 0.2.0

SYNOPSIS

use Module::Spec::V1 ();
Module::Spec::V1::need_module('Mango~2.3');

DESCRIPTION

MODULE SPECS

As string

M
M~V       minimum match, ≥ V
M~0       same as M, accepts any version

Example version specs are

2
2.3
2.3.4
v3.2.3

As a hash ref

{ M => V }      minimum match, ≥ V
{ M => '0' }    accepts any version

As an array ref

[ M ]
[ M => V ]      minimum match, ≥ V
[ M => '0' ]    same as [ M ], accepts any version

FUNCTIONS

Module::Spec::V1 implements the following functions.

need_module

$module = need_module('SomeModule~2.3');
$module = need_module( { SomeModule => '2.3' } );
$module = need_module( [ SomeModule => '2.3' ] );

Loads a module and checks for a version requirement (if any). Returns the name of the loaded module.

On list context, returns the name of the loaded module and its version (as reported by $m->VERSION).

( $m, $v ) = need_module($spec);

AUTHOR

Adriano Ferreira <ferreira@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Adriano Ferreira.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.