Это очевидно, НО, error_reporting(E_ALL), как понятно из самого названия функции, просто выводит больше, а нотис, как известно, за ошибку не считается. Я говорю про одно, а мне в ответ совершенно другие, очевидные вещи.
Заметьте, use strict не просто выводит ошибки, а не дает perl выполнить...