Patrzę na źródło base.pm
w dystrybucji Perla i nie widzę tego, co odróżnia go od "nie-pragmatycznego" modułu. Jeśli use base
jest "pragma", czy zasadniczo różni się w żaden sposób od use Foo
gdzie Foo
jest jakikolwiek moduł?Co sprawia, że moduł jest modułem pragmatycznym?
Odpowiedz
Nie ma solidnej definicji pragmy. Najbliższe oficjalne jest w perlpragma.
- Zazwyczaj modyfikują język lub zachowanie analizatora składni.
- Ich efekt jest zazwyczaj leksykalny.
Ja osobiście wierzę, to są wymagania (i wydaje się, że perlpragma robi też), ale podstawowe moduły vars i subs są udokumentowane być pragma chociaż ich wpływ nie jest zawężona leksykalnie.
base i nie pasują do żadnego z kryteriów. To, co robią, to dostarczanie informacji do "samego Perla". Myślę, że to również kwalifikuje się jako pragma.
Uważam, że mój moduł use syntax qw(loop);
jest pragmatyczny. (Bezwstydna wtyczka!)
Podczas gdy nazwa jest często używana w wielu kontekstach, zwykle myślę o pragmie jako o czymś, co używa podpowiedzi hash %^H
, jak udokumentowano w perldoc perlpragma. Oznacza to, że główną różnicą jest to, że akcja MUSI być w czasie kompilacji; use
działa, gdy require
(nie w BEGIN) nie. Jest to kluczowa różnica między "modułem pragmatycznym" (przez tę definicję) i innymi modułami. Zgodnie z tą definicją żaden z vars
,nie może być pragma.
- 1. Co sprawia, że członek związku jest aktywny?
- 2. Co sprawia, że Ometa jest wyjątkowa?
- 3. Co sprawia, że pylin myśli, że moja klasa jest abstrakcyjna?
- 4. Co sprawia, że ten Android App debuggable
- 5. Co sprawia, że portlet JSR-286 jest zgodny?
- 6. Co sprawia, że projekt Visual Studio 2013 jest projektem katana?
- 7. Co sprawia, że projekt ASP.NET jest aplikacją a biblioteką?
- 8. Co sprawia, że jedno z tych zapytań jest szybsze?
- 9. co sprawia, że zmienna jest widoczna (intellij idea)
- 10. Co sprawia, że domena z domeną ajax jest niepewna?
- 11. Co sprawia, że kolejność wykonywania wątków jest nieprzewidywalna?
- 12. Co zrobić, jeśli finalizator sprawia, że obiekt jest osiągalny?
- 13. Co sprawia, że liczba oczekujących oczekującej kolejki AMQ jest ujemna?
- 14. Sprawia, że element iframe jest niewidoczny.
- 15. włączenie TypeFamilies sprawia, że kod nie jest już budowany
- 16. UISearchController sprawia, że kontroler czarny
- 17. Co sprawia, że PHP wolniej niż Java lub C#?
- 18. Co sprawia, że Julia nie nadaje się do programowania ogólnego?
- 19. co sprawia, że const na niższych poziomach maszyny?
- 20. Co sprawia, że duża różnica między odgałęzieniem a apostrofem?
- 21. Co sprawia, że ta karta zmienia wymiary? [Video & Code]
- 22. Projekcja sprawia, że zapytanie wolniejsze
- 23. Jakie jest dokładne znaczenie inwazji? a co sprawia, że Spring jest nieinwazyjny?
- 24. Moduł AppRegistry nie jest zarejestrowanym modułem do wywoływania (wywołanie runApplication)
- 25. ObjectAnimator z właściwością scale sprawia, że bg jest czarny?
- 26. Sprawia, że kod Pythona kontynuuje po wyjątku
- 27. Zatrzymanie Java i powiadamianie sprawia, że zakleszczenie
- 28. Dlaczego atrybut Browsable sprawia, że właściwość nie jest powiązana?
- 29. Co sprawia, że Scheming oparty na sterty jest wolniejszy niż schemat oparty na stosie?
- 30. Co sprawia, że "Optional" Swifta jest bezpieczniejsze niż "zero" w Objective-C?
Zapomniałem o tym, że faktycznie przykrywam base.pm. Rozwiązałem to zaniedbanie. – ikegami
Mój komentarz stał się odpowiedzią własną :-) –