BIO :: PULLPARSERI

BIO :: Pullparseneri is een basismodule voor snelle 'pull'-parsering.
Download nu

BIO :: PULLPARSERI Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Sendu Bala
  • Uitgever website:
  • http://search.cpan.org/~sendu/

BIO :: PULLPARSERI Tags


BIO :: PULLPARSERI Beschrijving

BIO :: PULLPARSERI is een basismodule voor snel 'pull'-parsering. BIO :: PULLPARSERI is een basismodule voor snel 'pull' parsing.synopsis # Gebruik deze klasse niet, het is bedoeld voor parser module # schrijvers Onlyif Je schrijft een module om een nieuw formaat te ontleden, wil je een ' Pull'-aanpak waarbij u alleen werkt (bestandsgegevens lezen, het parseren van de geparseerde gegevens in een object draaien) wanneer absoluut noodzakelijk is.Pullparseri een systeem biedt om precies dat te doen. Als pullparker heb je een brok nodig. Een chunk is slechts een bio :: root :: io die alle onbewerkte gegevens bevat die u zou willen parseren. U kunt de methode Chunk () gebruiken om een brok te maken van een bestandsnaam, bestaande filehandle of zelfs een tekenreeks. Als je een stukje van een groot bestand maakt, maar eigenlijk wilt dat je brok maar een deel van het hele bestand te zijn, hoeveelheden start- en eindbedragen in bytes naar Chunk () op hetzelfde moment. De methoden _chunk_seek () en _chunk_tell () bieden zoektaken en vertelt dat ten opzichte van het begin en het einde van je brok, niet het hele bestand. Het andere dat je moet beslissen bij het maken van een chunk is hoe je doorgaat met input. Een pullparker heeft meestal zoekbare gegevens nodig om te ontleden, dus als uw gegevens in en onkoopbaar worden gepipperd, moet u beslissen tussen het maken van een Temp-bestand of het lezen van de invoer in het geheugen, dat zal worden gedaan voordat de chunk wordt gebruikt en u kunt beginnen met het parseren. Als alternatief kunt u ervoor kiezen om een sequentiële lees te forceren, in welk geval u gebruik kunt maken van _dependencies () om de lineaire volgorde van methoden te definiëren die zouden resulteren in het bestand dat achtereenvolgens wordt gelezen. De retourwaarde van _-aanvraag () is hier ook nuttig, als u een aantal gegevens moet cieren of anderszins anders gedragen tijdens een sequentiële lees. De hoofdmethode in het systeem is get_field (). Deze methode is afhankelijk van het bestaan van een particuliere hash-referentie die eraan toegankelijk is met de methode _fields (). DAT HASH REF HEEFT ALLES ALLEEN ALLEEN SLEUTELS MOET HEBBEN DAT U WILLEN (bijv. 'Score'), en voorafgaand aan het parseren van de waarden zouden ongedefinieerd zijn. Een gebruiker van uw module kan vervolgens de $ module-> get_field ('score') of $ module-> score en get_field retourneren, ofwel het antwoord van $ zelf -> _ velden -> {score} als deze is gedefinieerd of een methode _discover_score () eerst als dat niet. Dus voor het systeem om te werken, moet u een _discover _ * () -methode voor elk veld in de velden Hash definiëren en ervoor zorgen dat de methode een antwoord opslaat in de velden Hash.Hoe u implementeert uw _Discover_ * -methoden, maar Je zou nooit een _Discover_ * -methode zelf moeten bellen; Gebruik altijd get_field (), aangezien Get_field () zal omgaan met het bellen van afhankelijke methoden voor u als een geforceerde sequentiële lezing wordt uitgevoerd als gevolg van de piped-ingang. Je wilt bijna zeker gebruik maken van de verschillende chunk-gerelateerde methoden van deze klasse (die privé zijn aangeduid door de toonaangevende '_'; dit betekent dat je ze kunt gebruiken als de auteur van een parser-klasse, maar gebruikers van je Parser moeten Niet) .Primary onder hen is _ * _ chunk_by_end () waaraan u tekst geeft die het einde van uw gewenste chunk vertegenwoordigt en het doet een readline met uw argument als $ /. Het stuk weet het van zijn line-eindes, dus als u wilt dat uw einddefinitie een nieuwe regel bevat, gebruikt u gewoon altijd "n" en pullparseneri zal een noodzakelijke conversie voor u doen. Als uw invoergegevens hiërarchisch zijn (bijv. Report-> Veel resultaten-> Veel hits-> veel HSP's), en u wilt een voorwerp bij het blad van de hiërarchie om toegang te hebben tot informatie die wordt gedeeld onder alle (is geparseerd in de root), hoeft u niet te kopiëren de gegevens aan elk bladobject; Simpelweg door ouder te definiëren (), wanneer u Get_field () en het gevraagde veld noemt, is het velden van het blad niet in de velden van uw blad, de ouder van het blad wordt in plaats daarvan om het veld gevraagd, enzovoort tot root.see Bio :: Searchio :: hmmer_pull voor een voorbeeld van het implementeren van een parser met behulp van pullparseneri. Vereisten: · Perl


BIO :: PULLPARSERI Gerelateerde software