I'd rather prefer a catch_undef { BLOCK } command, because the block would be explicit about what is caught without much explanation.
While throwing exceptions or returning early from subroutines are indeed ways of taking short-cuts,
it is tricky to get the amount of control I am looking for with existing language constructs.
Keep in mind that the suggested operator does not need something that would trigger a warning or error to work, nor would it change the behaviour of similar warnings in the same block.
The method calling chain $a->foo->bar^^->baz->qux, say,
would give us a short-cut after bar() but nowhere else.
Likewise, the dereferencing chain $a->[1]->[2]^^->[3] would autovivify $a->[1] but not $a->[1]->[2].