Filter :: eenvoudig

FILTER :: Eenvoudige module maakt vereenvoudigde bronfiltering mogelijk.
Download nu

Filter :: eenvoudig Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Damian Conway
  • Uitgever website:
  • http://search.cpan.org/~dconway/

Filter :: eenvoudig Tags


Filter :: eenvoudig Beschrijving

Filter :: Eenvoudige module maakt vereenvoudigde bronfiltering toe. Filter :: Eenvoudige module maakt vereenvoudigde bronfiltering.Synopsis # in MyFilter.pm: Pakket MyFilter; Gebruik filter :: eenvoudig; Filter {...}; # of alleen: # # gebruik filter :: eenvoudige sub {...}; # in de code van de gebruiker: gebruik MyFilter; # Deze code wordt geen myfilter gefiltreerd; # Deze code is niet aan het filteren van problemen, is een immens krachtig kenmerk van recente versies van PERL. Hiermee kan u de taal zelf uitbreiden (bijvoorbeeld de schakelaarmodule), om de taal (b.v. Taal :: Pythonesque) te vereenvoudigen, of om de taal volledig te herschikken (bijvoorbeeld Lingua :: Romana :: Perligata). Effectief, het maakt het mogelijk om de volledige kracht van PerL als eigen, recursief toegepast, macro-taal te gebruiken. Het uitstekende filter :: UTIL :: CALL MODULE (door Paul Marquess) biedt een bruikbare perl-interface voor de bronfiltering, maar het is vaak Te krachtig en niet bijna zo eenvoudig als het zou kunnen zijn. Om de module te gebruiken, is het noodzakelijk om het volgende: Download, build en installeer en installeer het filter :: UTIL :: CALL MODULE. (Als u PERL 5.7.1 of hoger hebt, is dit al voor u klaar.) Stel een module in die een filter gebruikt :: util :: call. Maak in die module een import-subroutine. Binnen de import-subroutine doet u een oproep om te filteren, waardoor het een subroutine-referentie is. Bel binnen de subroutine-referentie, bel filters_read of filters_read_exact naar "Prime" $ _ met broncodegegevens uit het bronbestand dat uw module gebruikt. Controleer de statuswaarde geretourneerd om te zien of een broncode daadwerkelijk is gelezen. Verwerk de inhoud van $ _ om de broncode op de gewenste manier te wijzigen. Stuur de statuswaarde terug. Als de handeling van UniCporting Your Module (via A NO) de filter van de broncode moet ophouden om op te houden, maakt u een UnIMPORT-subroutine en belt het filter_del. Zorg ervoor dat de oproep aan filter_read of filters_read_exact in stap 5 niet per ongeluk voorbij het nee zal lezen. Effectief dit beperkt broncodefilters op regel-by-line-bediening, tenzij de import-subroutine wat fancy pre-pre-parsing van de broncode is die het filteren. Hier is bijvoorbeeld een minimaal broncodefilter in een module met de naam Bang.pm. Het maakt gewoon elke gebeurtenis van de Sequence Bangs + Bang om naar de sequentie Die 'Bang' als $ Bang in elk stuk code na een gebruik Bang; verklaring (tot de volgende no Bang; verklaring, indien aanwezig): pakketbang; Gebruik Filter :: Util :: Call; subimport {filter_add (sub {mijn $ beller = beller; mijn ($ status, $ no_seen, $ gegevens); terwijl ($ Status = filter_read ()) {if (/ ^ s * nos + $ bellers *; s *? $ /) {$ no_seen = 1; laatste;} $ gegevens. = $ _; $ _ = "";} $ _ = $ gegevens; s / pony + Bang / Die 'Bang' als $ Bang / g tenzij $ Status < 0; $ _. = "Geen $ klasse; n" if $ no_seen; retour 1;})} sub unimport {filter_del (); } 1; dit niveau van verfijning zet het filteren van het bereik van vele programmeurs. Een oplossing Het filter :: Eenvoudige module biedt een vereenvoudigde interface om te filteren :: util :: call; Een die voldoende is voor de meest voorkomende gevallen.Instead van het bovenstaande proces, met filter :: eenvoudig de taak van het instellen van een broncodefilter wordt gereduceerd tot: het filter downloaden en installeren: eenvoudige module. (Als u PERL 5.7.1 of hoger hebt, is dit al voor u gedaan.) Stel een module in die een gebruik Filter :: eenvoudig en vervolgens filter {...} belt. Proces de inhoud van $ _ in de anonieme subroutine of blok die wordt doorgegeven aan het filteren, verwerken de inhoud van $ _ om de broncode op de gewenste manier te wijzigen. Met andere woorden, het vorige voorbeeld, zou worden: pakket bang; Gebruik filter :: eenvoudig; Filter {S / Bangs + Bang / Die 'Bang' als $ Bang / G; }; 1; Merk op dat de broncode wordt doorgegeven als een enkele tekenreeks, dus elke regex die gebruik maakt van ^ of $ om lijngrenzen te detecteren, heeft de / m vlag nodig. REQUIRINGEN: · PERL-vereisten: · Perl


Filter :: eenvoudig Gerelateerde software