Chciałbym mieć skrót zawierający odniesienia do podfunkcji, gdzie mogę je nazwać zależnymi od zmiennej zdefiniowanej przez użytkownika, postaram się dać uproszczony przykład tego, co próbuję zrobić.Hash Perla podprogramów
my %colors = (
vim => setup_vim(),
emacs => setup_emacs(),
)
$colors{$editor}(arg1, arg2, arg3)
gdzie setup_vim()
i setup_emacs()
byłoby podrzędne funkcje zdefiniowane później w moim pliku i $editor
jest zdefiniowane przez użytkownika zmienna a (tj vim lub emacs). czy to możliwe? Nie mogę sprawić, żeby działało, lub znaleźć dobre informacje na ten temat. Dzięki.
(Uwaga mam go teraz realizowane jako przełącznik pracy, ale myślę, że hash jak wyżej by ułatwić dodawanie nowych wpisów do mojego istniejącego kodu)
Dziękuję wam obu, ale wszystko działa dobrze. Nie jestem pewien, jakie są zamknięcia, ja sam się uczę Perla czytając Mastering Perl (Foy) i są one oddalone o 2-3 rozdziały :) –
Zamknięcia działają również na inne rodzaje zmiennych leksykalnych, nie tylko na te tworzone za pomocą '' '' mój ". – tchrist
@tchrist: Tak, zamknięcia działają ze wszystkimi zmiennymi leksykalnymi. Ale rzeczy, które ludzie chcą z nich korzystać, nie są tak oczywiste z naszymi zmiennymi. Wciąż mam zaktualizowaną odpowiedź. – btilly