On Mon, Mar 21, 2005 at 09:57:26AM -0600, Ken Williams wrote:
>
> On Mar 20, 2005, at 4:09 PM, Yitzchak Scott-Thoennes wrote:
> >I was thinking along the lines of:
> >
> >
> >if (have_compiler($errmsg)) {
> > plan tests => 1;
> >} else {
> > plan skip_all => $errmsg;
> >}
> >
> >
> >
> >sub have_compiler {
> > my $errmsg = "";
> >
> > ...
> >
> > $_[0] = $errmsg if @_;
> > return $have_compiler;
> >}
>
> It would probably be better to set $@ or another global. Using
> inout-style arguments is a little unexpected these days unless the arg
> is a reference to a data structure.
I find the output via args a lot cleaner. Even so, I would agree with
you except that the only user of this module
(lib/MakeMaker/Test/Utils.pm) is the makemaker test suite. I'm going
to try to work on a patch that does this.
An alternative would be to have have_compiler return ($have_compiler,
$errmsg) if wantarray. That makes the code in the caller more clunky
though (IMO). Another alternative would be to rename the thing
no_compiler, returning undef or an explanation. But I'm not going to
pursue these alternatives unless someone likes them better.