Gå til innhold

Anbefalte innlegg

Hallo er en nybegynner i PERL, og jeg skal lese en linje fra en fil, fks linje 5

 

Finnes det noe enkel måte å gjøre det på eller må man begynne med løkker og slikt.

 

use strict;

use warnings;

 

open ( FILE, "<config.txt") or die ("Unable to open file: $!\n");

<FILE>;

my $length = tell (FILE);

seek(FILE, 5 * $length, 0);

 

print while(<FILE>);

close(FILE) or die("Cant close file");

 

slik som jeg har gjort det nå så hopper jeg over de fem første linjene og skriver ut de resterende.

Lenke til kommentar
Videoannonse
Annonse

Hei,

tror seek og tell operer på bytes og er ikke egnet til å posisjonere i en text fil, dersom ikke du har en fil hvor alle linjer er like store..

 

Det er sikkert mange mange måter å gjøre dette på, særlig hvis du har store filer som skal behandles finnes det moduler som håndterer dette bedre. Men hvorfor ikke bare gjøre det enkelt og rett frem:

 

open ( FILE, "<config.txt") or die ("Unable to open file: $!\n");
     #skip over 5 første linjer
<FILE> for 1..5;

while (<FILE>) {
   #......
   #loop gjennom resterende linjer i fil
}

Endret av sam2
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...