Tworzenie i zastępowanie nazwanych procedur

W poprzednim podrozdziale zapisałem procedurę anonimową w zmiennej, ale procedura to w istocie jeden ze slotów typegloba (Rozdział 8.). Tam również mogę zapisywać procedury. Kiedy przypisuję procedurę anonimową do typegloba, Perl umieszcza ją w slocie CODE. Następnie mogę używać procedury tak, jakbym zdefiniował ją przy użyciu nazwy:

print "Procedura foo jest zdefiniowana - na początku\n" if defined( &foo );

*foo = sub { print "Jestem tutaj!\n" };
foo();

print "Procedura foo jest zdefiniowana - na końcu\n" if defined( &foo );

Bywa to przydatne, kiedy muszę zastąpić fragment kodu w innym module, co pokażę w Rozdział 10. Nie chcę edytować innego modułu; zastępuję tylko pojedynczą definicję, która wymaga ...

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

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.