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.

Reply via email to