package MyModule; use strict; use warnings; use Module::Load; my $dd_loaded; BEGIN { $dd_loaded = eval { autoload Data::Dump; 1; }; use if ! $dd_loaded, 'Data::Dumper'; } _mydump(\%INC); sub _mydump{ my ($ref) = @_; if ($dd_loaded){ print "using Data::Dump dd\n"; dd $ref; } else { print "using Data::Dumper\n"; print Dumper $ref; } } #### using Data::Dump dd { "bytes.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/bytes.pm", "Carp.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/Carp.pm", "constant.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/constant.pm", "Data/Dump.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/site_perl/5.26.1/Data/Dump.pm", "Data/Dumper.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux/Data/Dumper.pm", "Exporter.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/Exporter.pm", "File/Spec.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux/File/Spec.pm", "File/Spec/Unix.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux/File/Spec/Unix.pm", "if.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/if.pm", "Module/Load.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/Module/Load.pm", "overload.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/overload.pm", "overloading.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/overloading.pm", "strict.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/strict.pm", "subs.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/subs.pm", "vars.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/vars.pm", "warnings.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/warnings.pm", "warnings/register.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/warnings/register.pm", "XSLoader.pm" => "/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/XSLoader.pm", } #### $dd_loaded = eval { autoload Data::Dump; 1; }; #### $dd_loaded = eval { autoload Data::Dumpx; 1; }; # ^ <-- here #### using Data::Dumper $VAR1 = { 'Carp.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/Carp.pm', 'constant.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/constant.pm', 'Exporter.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/Exporter.pm', 'warnings/register.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/warnings/register.pm', 'Module/Load.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/Module/Load.pm', 'XSLoader.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/XSLoader.pm', 'vars.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/vars.pm', 'File/Spec.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux/File/Spec.pm', 'Data/Dumper.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux/Data/Dumper.pm', 'strict.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/strict.pm', 'if.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/if.pm', 'bytes.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/bytes.pm', 'warnings.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/warnings.pm', 'File/Spec/Unix.pm' => '/home/spek/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux/File/Spec/Unix.pm' };