in reply to eval segfaults when $@ isn't writable

It clearly is a bug, and I suggest reporting it with perlbug. For what it's worth the latest development perl hits an assertion even with a shorter form:

zen% ./perl -e '*@=1' Assertion !((((dstr)->sv_flags & (0x00004000|0x00008000)) == 0x00008 +000) && (((dstr)->sv_flags & 0xff) == SVt_PVGV || ((dstr)->sv_flags & + 0xff) == SVt_PVLV)) failed: file "sv.c", line 3393 at -e line 1. zen%