It should be fairly trivial, simply locate the point where -x is tested, and add conditional (
!SvTRUE( get_sv("sx::y"))
In file util.c in function Perl_find_script
if (S_ISREG(PL_statbuf.st_mode)
&& cando(S_IRUSR,TRUE,&PL_statbuf)
#if !defined(DOSISH)
&& !SvTRUE( get_sv("sx::y")
&& cando(S_IXUSR,TRUE,&PL_statbuf)
#endif
)
{
xfound = tmpbuf; /* bingo! */
break;
}
and accompanying badly named pragma
package sx::y;
$sx::y = $VERSION = 0.01;
1;
when you recompile perl, use as perl -Msx::y -S foo
Untested, so not in patch form