Skip Menu |

This queue is for tickets about the Params-Classify CPAN distribution.

Report information
The Basics
Id: 49351
Status: resolved
Priority: 0/
Queue: Params-Classify

People
Owner: Nobody in particular
Requestors: CRAKRJACK [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.007
Fixed in: (no value)



Subject: "exit 0" at the end of Build.PL breaks Module::Build::Base::new_from_context
If "new_from_context" in M::B works with Params::Classify, the 'exit 0' at the bottom of Params::Classify causes the entire build process to stop -- which could, for instance, be something like CPANPLUS. This is more a problem with M::B (see https://rt.cpan.org/Ticket/Display.html?id=49350 ) -- but if you could find it in your heart to remove that "exit 0" from the Build.PL, that's one less ugly hack I'll need to keep around to be able to use your module :-)
The partner to this bug in M::B is here; https://rt.cpan.org/Ticket/Display.html?id=49350 For now, I am using the following workaround. I hope it doesnt have any other unintended side-effects :-) ## hackery for https://rt.cpan.org/Ticket/Display.html?id=49350 ## and https://rt.cpan.org/Ticket/Display.html?id=49351 my $old_new_from_context = \&Module::Build::Base::new_from_context; local *Module::Build::Base::new_from_context = sub { local *CORE::GLOBAL::exit = sub { return @_ }; $old_new_from_context->(@_); };
Subject: Re: [rt.cpan.org #49351] "exit 0" at the end of Build.PL breaks Module::Build::Base::new_from_context
Date: Wed, 2 Sep 2009 11:07:42 +0100
To: CRAKRJACK via RT <bug-Params-Classify [...] rt.cpan.org>
From: Zefram <zefram [...] fysh.org>
I'm happy to remove "exit" from my Build.PL scripts. I'll do a new release of Params::Classify for it in the next couple of days. Your workaround, effectively disabling "exit", will work OK for all of my modules, but in the general case risks screwing up the control structures of Build.PL scripts. The "exit" should terminate the Build.PL. You might want to play with Scope::Upper::unwind(), to return directly from the do("Build.PL") somewhere up the stack. Or you could throw an exception, and rewrite new_from_context to reinterpret that particular exception as a success. -zefram
Params-Classify-0.008 uploaded to CPAN.