Inline Config is currently _global_ in scope.
The Config options are inherited and additive. You can use as many
Config calls as you want. And you can apply different options to
different code sections. When a source code section is passed in ,
Inline will apply whichever options have been specified up to that
point. [man Inline]
This violates a module's, err, modularity.
Here is an example:
Someone distributes
$ cat t05_c.pm
use Inline C => 'int zog_bar() { return 42; }';
1;
__END__
which provides a method zog_bar().
Someone else distributes
$ cat t05_b.pm
use Inline (C => Config => PREFIX => 'zog_');
use Inline C => 'int zog_foo() { return 3; }';
1;
__END__
which provides a foo().
The poor user is understandably puzzled when
this works
use t05_c.pm;
zog_bar();
but this doesn't
use t05_b.pm;
use t05_c.pm;
zog_bar();
The other Config arguments behave similarly.
Shudder.