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.