Sisyphus wrote:
Sisyphus wrote:

Hi,

I'm wanting to insert my own sub MY::xs_o() into a Makefile.PL, but I want the sub to be visible only if $Config{make} eq 'nmake'.

So I wrote in the Makefile.PL:

if($Config{make} eq 'nmake') {
  sub MY::xs_o {"text to insert in Makefile"}
}

That worked fine - except that sub MY::xs_o() is visible (and is enacted) even if $Config{make} is *not* 'nmake'.

Is there a way I can get the behaviour I'm after ?


Well ... one way is to write my 'sub MY::xs_o' into an external file (let's call it 'for_nmake.MY') and then in the Makefile.PL put:


if($Config{make} eq 'nmake') {require 'for_nmake.MY'}

That seems to work ok, and will do quite nicely - unless there's a way of doing it that doesn't require an external file.

Something like:

sub MY::xs_o {
  my $self = shift;
  if ( $Config{make} eq 'nmake' ) {
    return '...';
  } else {
    return $shift->SUPER::xs_o;
  }
}

should work.



Reply via email to