Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: Use of AutoLoader in Modern Times (future)

by tobyink (Abbot)
on Nov 16, 2012 at 14:57 UTC ( #1004213=note: print w/ replies, xml ) Need Help??


in reply to Re: Use of AutoLoader in Modern Times (future)
in thread Use of Autoloader in Modern Times

Module::Runtime's use_module function may be to your liking...

use_module('My::Utils')->import(qw< min max zip >); my $logger = use_module('My::Logger')->new(-trace => 1);

Update:... some people may well consider this insane but...

BEGIN { package PerlX::qm; no thanks; sub import { my ($me, $name) = @_; require Module::Runtime; require PerlX::QuoteOperator; PerlX::QuoteOperator->new->import($name || "qm", { -parser => 1, -with => sub ($) { Module::Runtime::use_module(grep /\w/, split /\s/, $_[ +0]) }, }, scalar caller); } }; use 5.010; use strict; use warnings; use PerlX::qm; say qm( Math::BigInt 1.000 )->new('4660')->as_hex; say qm( Math::BigFloat )->new('74565')->as_hex;

PerlX::qm defines a quote-like operator (like qq, qw or qx) for module names. Quoted modules are loaded at runtime, and can be followed by an optional version number.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'


Comment on Re^2: Use of AutoLoader in Modern Times (future)
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1004213]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (12)
As of 2015-07-28 23:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls