in reply to Best practice for handling subroutines that are conditionally loaded?
With a little help from my AI friend and after holding their hand a bit, I got this:
package Test::Utils::Dump::Load; use v5.10; use strict; use warnings; use Exporter 'import'; our @EXPORT = qw(d d0 d1 dd di); my $debug = $ENV{MYMOD_DEBUG_LEVEL}; sub d { _load_and_call('d', @_) if $debug } sub d0 { _load_and_call('d0', @_) if $debug } sub d1 { _load_and_call('d1', @_) if $debug } sub dd { _load_and_call('dd', @_) if $debug } sub di { _load_and_call('di', @_) if $debug } sub _load_and_call { my $sub_name = shift; state $imported = 0; if (!$imported) { require Test::Utils::Dump; Test::Utils::Dump->import(qw(d d0 d1 dd di)); $imported = 1; } no strict 'refs'; ## no critic &{"Test::Utils::Dump::$sub_name"}(@_); } 1;
So now in my module with debug code I can just add this one line:
use Test::Utils::Dump::Load;
$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
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Best practice for handling subroutines that are conditionally loaded?
by SankoR (Prior) on Mar 08, 2024 at 16:55 UTC | |
by LanX (Saint) on Mar 08, 2024 at 17:22 UTC | |
by nysus (Parson) on Mar 08, 2024 at 18:05 UTC | |
by LanX (Saint) on Mar 08, 2024 at 18:31 UTC | |
Re^2: Best practice for handling subroutines that are conditionally loaded?
by LanX (Saint) on Mar 08, 2024 at 17:07 UTC |