Проверяет пакет с тем же именем и на данный момент привязан к прагме fields
, которая помогает проверять опечатки в именах полей.
Например:
package MyPackage;
use fields qw/ foo bar /;
sub new { fields::new(shift) }
Тогда, если вы попытаетесь запустить
use MyPackage;
my MyPackage $p1 = MyPackage->new;
print $p1->{notpresent}, "\n";
вы получите
No such class field "notpresent" in variable $p1 of type MyPackage at ...