Hier ein bischen ausführlicher.
Das Thema hatten wir ja auch schon hier. Es geht darum, Exceptions zweckmäßig zu nutzen um den Code einer Anwendung zu vereinfachen. So können, siehe Beispiel, sämtliche Prüfungen auf gültige Benutzereingaben einer dafür zuständige Klasse überlassen werden.
Hintergründig ist, daß Perlintern jede Meldung die sich infolge einer Exception ergibt, in $@ zu finden ist. Das ist zwar eine globale Variable, aber die Prüfung auf eine Exception ist ja nicht eine Frage ob in $@ was drinsteht, sondern ob ein bestimmter Code erfolgreich ausgeführt werden konnte. So dient $@ lediglich dazu, die zu einer Exception gehörige Fehlermeldung zu transportieren.
MfG