diff -rup Function-Parameters-1.0402-gwmK_J-orig/Parameters.xs Function-Parameters-1.0402-gwmK_J/Parameters.xs --- Function-Parameters-1.0402-gwmK_J-orig/Parameters.xs 2014-09-01 12:27:03.000000000 -0700 +++ Function-Parameters-1.0402-gwmK_J/Parameters.xs 2014-09-23 22:20:48.000000000 -0700 @@ -1790,6 +1790,10 @@ static int parse_fun(pTHX_ Sentinel sen, keys = newLISTOP(OP_JOIN, 0, first, mid); keys->op_targ = pad_alloc(OP_JOIN, SVs_PADTMP); ((LISTOP *)keys)->op_last = last; +#if HAVE_PERL_VERSION(5, 21, 2) + mid->op_lastsib = 0; + last->op_lastsib = 1; +#endif } msg = mkconstsv(aTHX_ newSVpvf("In %"SVf": no such named parameter: ", SVfARG(declarator))); diff -rup Function-Parameters-1.0402-gwmK_J-orig/padop_on_crack.c.inc Function-Parameters-1.0402-gwmK_J/padop_on_crack.c.inc --- Function-Parameters-1.0402-gwmK_J-orig/padop_on_crack.c.inc 2014-09-23 21:36:00.000000000 -0700 +++ Function-Parameters-1.0402-gwmK_J/padop_on_crack.c.inc 2014-09-23 21:36:10.000000000 -0700 @@ -490,7 +490,10 @@ func_ops: kid = cLOGOPo->op_first; if (kid->op_type == OP_NOT && (kid->op_flags & OPf_KIDS) - && !PL_madskills) { +#ifdef PL_madskills + && !PL_madskills +#endif + ) { if (o->op_type == OP_AND) { o->op_type = OP_OR; o->op_ppaddr = PL_ppaddr[OP_OR]; diff -rup Function-Parameters-1.0402-gwmK_J-orig/t/eating_strict_error.t Function-Parameters-1.0402-gwmK_J/t/eating_strict_error.t --- Function-Parameters-1.0402-gwmK_J-orig/t/eating_strict_error.t 2014-08-31 07:57:38.000000000 -0700 +++ Function-Parameters-1.0402-gwmK_J/t/eating_strict_error.t 2014-09-23 21:46:37.000000000 -0700 @@ -15,7 +15,9 @@ for my $thing (map [__DIR__ . "/eating_s my $err = $!; is $done, undef, "faulty code doesn't load"; - my $msg = qq{Global symbol "\$records" requires explicit package name at $file line $line.\n}; - like $exc, qr{^\Q$msg}; + my $msg = qq{Global symbol "\$records" requires explicit package } + .qq{name(?: \([^)]+\))? at $file line $line.\n}; + like $exc, qr{^Global symbol "\$records" requires explicit (?x: + )package name(?: \([^)]+\))? at $file line $line.\n}; $exc or die "$file: $err"; } diff -rup Function-Parameters-1.0402-gwmK_J-orig/t/foreign/MooseX-Method-Signatures/errors.t Function-Parameters-1.0402-gwmK_J/t/foreign/MooseX-Method-Signatures/errors.t --- Function-Parameters-1.0402-gwmK_J-orig/t/foreign/MooseX-Method-Signatures/errors.t 2014-08-31 07:57:38.000000000 -0700 +++ Function-Parameters-1.0402-gwmK_J/t/foreign/MooseX-Method-Signatures/errors.t 2014-09-23 21:37:27.000000000 -0700 @@ -15,7 +15,7 @@ ok($@, "Got an error"); # if Eval::Closure->VERSION > 0.06; like($@, - qr/^Global symbol "\$op" requires explicit package name at .*?\bInvalidCase01.pm line 8\b/, + qr/^Global symbol "\$op" requires explicit package name .*?\bInvalidCase01.pm line 8\b/, "Sane error message for syntax error"); #}