in reply to Best practice for handling subroutines that are conditionally loaded?

Not really part of what you're asking; however, I'd question the naming of some of the symbols you're exporting. Some general pointers:

For your specific question, could you set up a Test::Utils::Dump::Noop whose debug routines have the same names as those in Test::Utils::Dump but are NO-OPs. Your test script(s) could then have something like:

use if $ENV{MYMOD_DEBUG_LEVEL}, 'Test::Utils::Dump' => ':debug'; use if ! $ENV{MYMOD_DEBUG_LEVEL}, 'Test::Utils::Dump::Noop' => ':debug +';

— Ken

Replies are listed 'Best First'.
Re^2: Best practice for handling subroutines that are conditionally loaded?
by nysus (Parson) on Mar 08, 2024 at 21:15 UTC

    Thanks for the input. As far as meaningful names go, I just need something quick and dirty to type. And I type these so frequently, I'm not worried about forgetting them and I'm not sharing my debug module so I don't care. And I use a wrapper for Data::Dump in my debug module so I'm not worried about stomping on it. Besides, being able to break rules is what can make you a bad ass if you know what you are doing (or just an ass if you don't). :)

    On point three, I didn't know exporting vars was a bad idea. I'll keep that in mind.

    Point 4: yes, on my todo list.

    Regarding solution, I went with the solution in the comment above which is super clean, just one line. But it basically works like your suggestion. Thanks.

    $PM = "Perl Monk's";
    $MC = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest Vicar Parson";
    $nysus = $PM . ' ' . $MC;
    Click here if you love Perl Monks