Perl Manipuleer is ontworpen voor het lezen en bewerken van tekst gegevens . Het is gemakkelijk om de drie basis data structuren ( de scalaire , de lijst en de hash ) te manipuleren , omdat de Perl-interpreter kan het type op basis van contextuele gegevens . De meest gemanipuleerde data formaat in Perl is door komma's gescheiden waarden . Instructies 1 Open het bestand , als je niet lezen van gegevens uit STDIN of DATA . Gebruik een filehandle die snel geïdentificeerd : "open CSVFILE , " test.csv " ; " kopen van 2 Lees de gegevens . Met kleine bestanden , kunt u alle regels leest in een keer. Voor grote bestanden , moet u leest een regel per keer en verwerken voordat het lezen van de volgende regel . Hier wordt het hoekijzer "magische syntax " voor het lezen van alle lijnen gebruikt om alle lijnen @ lijnen ingelezen in de array : " @ lines = ; " Strip 3 de newlines de einde van iedere lijn , met behulp van de kaart -functie . De nieuwe regels zijn niet nodig , want ze zijn zinloos als alle lijnen worden gelezen inch De kaart -functie zal het blok doorgegeven als het eerste argument voor elk element in de lijst te bellen : " map ( { chomp } @ lijnen ) ; " < br > Goedkope 4 Splits de lijnen . De komma 's gescheiden moeten worden opgesplitst in arrays , die kan worden bereikt door de splitsing en kaartfunctie . De lijnen worden samengevoegd op dezelfde manier als de gegevens opnieuw worden afgedrukt . " @ lijnen = map ( { [ split /, /] } @ lijnen); " . 5 Manipuleer de gegevens , nu dat alle gegevens in het geheugen is in een gemakkelijk toegankelijk formaat Loop 6 over hen met de foreach trefwoord . De foreach sleutelwoord loopt een blok voor elk element in een array , waarbij aan elk array- element een verwijzing naar de default variabele . Dit voorbeeld veronderstelt dat het tweede veld (matrix index van 1 ) bevat een numerieke waarde , en voegt 20 aan. Alle overige handelingen , zoals wiskunde en string manipulaties kunnen worden uitgevoerd op dezelfde manier : " foreach ( @ lijnen ) { $ _ - > [ 1 ] + = 20 ; } " 7 Rejoin de gegevens voordat het kan worden geschreven naar een csv-bestand . De velden moeten worden samengevoegd met komma : " @ lijnen = map ( { treden " , " , @ { $ _ } } @ lijnen ) ; " 8 Print de gegevens . Nogmaals , je zal lus over @ lijnen , maar deze keer alleen elke regel af te drukken . Hier worden de lijnen worden afgedrukt naar STDOUT , maar je kan net zo goed een ander bestand opent en wilt afdrukken op dat : ; < " { \\ n " foreach ( @ lijnen ) afdruk $ _ . " } " br >
|