Moduł Perl6::Interpolators
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaObsługa modułu Perl6::Parameters
use Perl6::Interpolators;
sub Foo { 1 }
sub Bar { 1..5 }
sub Baz { @_ }
sub Context { wantarray ? &apslist&aps : &apsscalar&aps }
print "Foo: $(Foo)\n"; #wypisze Foo: 1
print "Bar: @(Bar)\n"; #wypisze Bar: 1 2 3 4 5
print "Baz: $(Baz(&apsa&aps, &apsb&aps))"; #wypisze Baz: b
print "Baz: @(Baz(&apsa&aps, &apsb&aps))"; #wypisze Baz: a b
print "$(Context)"; #wypisze scalar
print "@(Context)"; #wypisze list
Co to jest?
Moduł implementuje prototypowy styl Perla 6 z interpolacją funkcji.
Dla wszystkich nie mogących się doczekać Perla 6!
Szczegóły
Perl6::Interpolators to moduł, który pozwala na interpolacje funkcji ze stringów. Ze względu na kontekstowość Perla moduł wymaga znaku $ lub @ by funkcja wjedziała w jakim kontekście jest wywoływana. Skladnia wygląda tak $(wywołanie) dla kontekstu skalarnego lub tak @(wywołanie) dla kontekstu listowego. Taka składnia ma być aktualna dla Perla 6.
Perl6::Interpolators działa dobrze przy wywoływaniu funkcji i metod. Dziala także z wywołaniami z okrągłymi nawiasami, a także poza stringami, gdzie może być użyte do kontrolowania kontekstu. (W niektórych przypadkach to może być jedyna metoda na wymuszenie kontekstu listowego)
Błędy
Jeżeli chcesz użyć $( należy tymczasowo wyłączyć moduł:
no Perl6::Interpolators;
#tutaj mozesz sobie uzywac $(
use Perl6::Interpolators;
Na razie moduł wprowadza zmiany także w pojedynczych cudzysłowiach. Nie interpoluje funkcji w takim przypadku, jedynie śmiesznie wygląda.
Dodatkowe informacje
Cała dokumentacja znajduje się na http://search.cpan.org/~brentdax/Perl6-Interpolators-0.03/Interpolators.pm
Autor opracowania
P.B.