Metody wczytywane automatycznie

Kiedy Perl nie może znaleźć metody w module albo w jego drzewie dziedziczenia, wraca do pierwotnej klasy i szuka specjalnej procedury AUTOLOAD. Perl ustawia zmienną pakietową $AUTOLOAD na nazwę metody, której szukał, i przekazuje procedurze AUTOLOAD tę samą listę parametrów. To, co stanie się dalej, zależy od programisty.

Aby zdefiniować metodę opartą na AUTOLOAD, muszę najpierw ustalić, jaką powinna mieć nazwę. Perl umieszcza pełną specyfikację pakietu w $AUTOLOAD, a ja zwykle potrzebuję tylko ostatniej części, którą mogę wyodrębnić za pomocą wyrażenia regularnego:

if( $AUTOLOAD =~ m/::(\w+)$/ )
    {
    # robię coś z $1
    }

Niektóre programy dokonują tu podstawienia, które odrzuca wszystko poza nazwą metody. Ma to tę ...

Get Perl. Mistrzostwo w programowaniu now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.