Here's a "Clever" solution ;)
- Define a config format that begins with "1;\n__END__\n", and continues with whatever sort of config data you like.
- Have your users put "myapp.conf" anywhere in @INC. Optionally recognize a special environment var (say, MYAPP_HOME) to temporarily push onto @INC, just in case they don't feel like fooling around with PERL5LIB :)
- In your code:
{
local @INC = @INC;
unshift @INC, $ENV{MYAPP_HOME} if defined $ENV{MYAPP_HOME};
require 'myapp.conf';
}
open my $conf, '<', $INC{'myapp.conf'} or die 'Flaming death';
1 while <$conf> ne "__END__\n";
enjoy($conf);