Tekst :: filter

basisklasse voor objecten die tekstlijnen kunnen lezen en schrijven
Download nu

Tekst :: filter Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Johan Vromans
  • Uitgever website:
  • http://search.cpan.org/~jv/

Tekst :: filter Tags


Tekst :: filter Beschrijving

Basisklasse voor objecten die tekstlijnen kunnen lezen en schrijven Text :: Filter's belangrijkste doel is om abstracte de details hoe input en output moet worden gedaan. Hoewel in de meeste gevallen inbreng zal komen uit een bestand en output zal worden weggeschreven naar een bestand, geavanceerde modules vereisen meer gedetailleerde controle over de input en output. Bijvoorbeeld kan de module worden aangeroepen vanuit andere module, in dit geval de opgeroepen persoon kan worden toegestaan om slechts een deel van de invoer verwerken. Of zou een programma voorbereid data in een array te hebben en wil de module bellen om deze gegevens te verwerken alsof het lezen van een bestand. Ook de input-stroom zorgt voor een pushback functionaliteit om ervoor te gluren bij de ingang easy.Text :: Filter kan worden gebruikt op zijn eigen als een handige input / output handler. Bijvoorbeeld: gebruik tekst :: Filter; mijn $ filter = Text :: Filter -> (input => * STDIN, output => * STDOUT); mijn $ lijn; while (bepaald (regel $ = $ filter-> readline)) {$ filter-> WriteLine ($ lijn); } Of nog eenvoudiger: gebruik tekst :: Filter; Text :: Filter-> run (ingang => * STDIN output => * STDOUT); kern ervan geeft aan wanneer een dergelijk programma wordt omgezet in een module voor het creëren van een optimale reuse.When module dat wil werkwijze tekstregels het kan worden afgeleid uit tekst :: Filter, bijvoorbeeld: package MyFilter; Gebruik base 'Text :: Filter'; De constructormethode moet dan bellen met de nieuwe () methode van de klasse Text :: Filter het opzetten van de basisklasse. Dit is gunstig gedaan door te bellen naar SUPER :: nieuwe (). Een hash dat kenmerken moeten worden doorgegeven aan deze methode, zullen sommige van deze attributen worden gebruikt door de basisklasse setup. subnieuw {mijn $ klasse = verschuiving; # ... haal non-attribuut argumenten van @_ ... # Maak de instantie, met behulp van het attribuut argumenten. mijn $ zelf = $ klasse-> SUPER :: nieuwe (@_), ten slotte, moet de nieuw gevormde zaak opnieuw gezegend in de gewenste klasse, en keerde zijn: # Rebless in de gewenste klasse. zegenen ($ zelf, $ klasse); } Bij het aanmaken van nieuwe exemplaren voor deze klasse, attributen ingang en uitgang kan worden gebruikt om aan te geven hoe de input en output moet worden gehanteerd. Verschillende mogelijke waarden kan worden geleverd voor deze ingang attributes.For: * Een scalaire gemaakt met een bestandsnaam. Het genoemde bestand wordt geopend, ingang lijnen worden gelezen met behulp van. * Een file handle (glob). Lines zal worden gelezen met behulp van. * Een instantie van de klasse IO :: File. Lines zal worden gelezen met behulp van. * Een verwijzing naar een array. Ingangslijnen zal shift () ed van de array. * Een verwijzing naar een scalair. Ingangsleidingen worden uit de inhoud van de scalaire (die zullen worden gewijzigd). Wanneer uitgeput, wordt deze ingesteld op undefined. * Een verwijzing naar een anonieme subroutine. Deze routine zal worden genoemd naar de volgende regel van data default krijgen is te lezen ingang met de operator.For output: * Een scalaire, met een bestandsnaam. Het genoemde bestand wordt automatisch gemaakt, zal output lijnen worden geschreven met behulp van print (). * Een file handle (glob). Lines zal worden geschreven met behulp van print (). * Een instantie van de klasse IO :: File. Lines zal worden geschreven met behulp van print (). * Een verwijzing naar een array. Uitgangslijnen zal push () ed in de array. De array wordt geïnitialiseerd op () indien nodig. * Een verwijzing naar een scalair. Uitgangslijnen worden toegevoegd aan de scalaire. De scalaire zal worden geïnitialiseerd op "" indien nodig. * Een verwijzing naar een anonieme subroutine. Deze routine zal worden opgeroepen om een regel tekst toevoegen aan de destination.The standaard is om schrijf uitvoer naar STDOUT.Additional attributen kunnen worden gebruikt om acties te specificeren moeten worden uitgevoerd nadat de gegevens wordt opgehaald, of alvorens te worden geschreven. Bijvoorbeeld, om regeleinden strippen op input, en voeg ze op output.SYNOPSISA overvloed aan instrumenten bestaan die werken als filters: ze gegevens op te halen uit een bron, werken op deze gegevens en schrijven eventueel gewijzigde gegevens naar een bestemming. In de Unix wereld kunnen deze instrumenten worden geschakeld met behulp van een techniek genaamd pipelining, waarbij het uitgangssignaal van één filter is verbonden met de ingang van een ander filter. Sommige niet-Unix werelden worden gemeld aan hebben soortgelijke provisions.To creëren Perl modules voor filter functionaliteit triviaal lijkt op het eerste. Open gewoon de input file, te lezen en te verwerken, en schrijf uitvoer naar een bestemming bestand. Maar voor echt herbruikbare modules deze aanpak is te simpel. Een herbruikbare module mag niet lezen en schrijven van bestanden zelf, maar vertrouwen op de roepen programma om input te leveren, alsmede de output.Text :: Filter te gaan is een basisklasse voor modules die met elkaar gemeen hebben dat zij verwerken tekstregels door het lezen van een bron (meestal een bestand), het manipuleren van de inhoud en het schrijven van iets terug naar sommige bestemming (meestal een ander bestand) .Dit module kan gebruikt worden op zichzelf, maar het is zeer krachtig wanneer het wordt gebruikt voor het afleiden van modules uit het. Zie paragraaf Voorbeelden voor een uitgebreid voorbeeld. Vereisten: · Perl


Tekst :: filter Gerelateerde software