in reply to Re^2: Use and Require - making an informed choice.
in thread Use and Require - making an informed choice.

You seem to be reinventing autouse, which has been in the distro since 5.6, if I recall.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

  • Comment on Re^3: Use and Require - making an informed choice.

Replies are listed 'Best First'.
Re^4: Use and Require - making an informed choice.
by g0n (Priest) on Jan 30, 2006 at 18:04 UTC
    Thanks, I hadn't come across autouse before, and it would certainly solve the problem of scattering requires through ones code to have:

    use autouse 'This::Module'; use autouse 'That::Module';

    At the top of the code. Interestingly though, autouse fails in this particular instance where my quick (and perhaps OO centric) kludge up didn't, because DDS implements an import method:

    autoused module has unique import() method at autouse.pl line 5

    with the following code:

    use strict; use warnings; use autouse 'Data::Dump::Streamer'=>qw(Dump); use autouse 'No::Such::Module'; print "foo\n"; my %hash = ( 1=>'one', 2=>'two', 3=>'three' ); Dump(%hash); my $dds = Data::Dump::Streamer->new; $dds->Dump(%hash)->Out();

    Note: I'd tried both OO & non OO interface, hence the inclusion of two calls to Dump - with the Dump(%hash); line commented out it fails with:

    Can't locate object method "new" via package "Data::Dump::Streamer" (p +erhaps you forgot to load "Data::Dump::Streamer"?) at autouse.pl line + 15.

    --------------------------------------------------------------

    "If there is such a phenomenon as absolute evil, it consists in treating another human being as a thing."

    John Brunner, "The Shockwave Rider".