Earlier quoted context omitted.
You can use the @ symbol to suppress errors when you're aware that the variable may be empty and you've considered the possible effects. When I used to write PHP, I'd often write something like do_something(@$_GET['foobar']); There are ways to suppress PHP notices without just turning off the E_NOTICE output.
It shouldn't be ok to write code that is known to throw an error, and handle it by suppressing that error. Silently failing code is just a bug waiting to happen. It's also making the interpreter do unnecessary error handling work when a simple "if ($_GET['foobar'])" would suffice.
$one->{ two }->{ three } = [ $four ]
Without having to check every link for definedness makes for cleaner code, IMO. Making it optional "suppressing that error" would be a good middle-ground.Coffeescipt has the existential operator, not quite on a par with Perl's autovivification, which allows:
zip = lottery.drawWinner?().address?.zipcode