http://qs321.pair.com?node_id=11107311


in reply to Config::Any does not complain when Config::Tiny is not installed

Edit: It's definitely the use of force_plugins. Without that (i.e., with plugins instead), it will indeed error out if Config::Tiny is not present:

Cannot load test.ini: required support modules are not available. Please install Config::Tiny at config_any.pl line 11.

The problem is on Config::Any.pm:144:

# figure out what plugins we're using my @plugins = $force ? map { eval "require $_;"; $_; } @{ $args->{ force_plugins } +} : $class->plugins;

That map { eval "require $_;" $_ } @... line always returns @{$args->{force_plugins}}, even if one or more modules don't load. I don't know if that is the intended behavior or not (doesn't seem like it, based on my very quick reading of the docs), so it might not hurt to bring it up with the module author(s).

For now, you can work around the issue by guarding it in your own (calling) code:

@plugins = grep { eval "require $_" } @plugins;

... or raising an error if you want:

my @missing = grep { !eval "require $_" } @plugins; die "Missing plugin(s): @missing" if @missing;

Original reply missed the point a bit.

Config::Any::INI is part of the Config::Any distribution: Config::Any, and that does require Config::Tiny, which is specified under suggests in the Makefile.PL. Are you sure you don't have Config/Tiny.pm in your Perl install?

Replies are listed 'Best First'.
Re^2: Config::Any does not complain when Config::Tiny is not installed
by kaldor (Beadle) on Oct 10, 2019 at 19:00 UTC

    I had come to the same conclusion, with less technical details though.
    I've open a bug ticket.

    Thank you very much for your help.
    Cheers