Just in case this helps somebody

I’ve had this weird situation where when I call an AJAX function, even
though the Mason handler file calls $m->abort, I was still getting
HTML from the autohandler in the directory above the directory where
the handler lived, and RT autohandler stuff after that. This was only
happening on my Mac, not on my Linux computer (there were slight
version differences of some of the perl modules, including
HTML::Mason, so I don’t know if that was the problem). The solution I
adopted was to rename all the ajax functions I use to have a .ajx
extension, and then in the top level autohandler, call $m->call_next,
and then, if it was named .ajx, also call $m->abort. I know, this
shouldn’t be required, but evidently it was in at least one case. And
if it’s not required, it doesn’t do any harm that I can see. Here is
my top level autohandler now:

<div class="modal" <%init> my $file = $m->base_comp->source_file; $m->call_next(); if ($file =~ m{\.ajx$}) { $m->abort; }