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 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.