Thread Array zeilenweise auslesen (4 answers)
Opened by azib at 2015-10-28 18:49

hlubenow
 2015-10-28 20:40
#182726 #182726
User since
2009-02-22
875 articles
BenutzerIn
[default_avatar]
2015-10-28T17:49:56 azib
Code (perl): (dl )
1
2
3
4
5
6
7
8
while (<IN>){
    @a = split(/\t/, $_ );
}
close(IN);

foreach (0 .. $#a){
    @neu = ($a[1], "\t", $a[13], "\n");
}

Merkste was? In der while-Schleife verändert sich @a für jede Zeile. Wenn die Schleife zuende ist, enthält @a die Werte für die letzte Zeile.
Mit der foreach-Schleife gehst Du dann also nur die Werte für die letzte Zeile durch. Das ist nicht, was Du möchtest.

Ersatzvorschlag (ungetestet):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl

use warnings;
use strict;

my $file = "Test.txt";
my @a;
my @neu;
my $in;
my $datei;

open($in, "<" , $file) or die "Datei $file konnte nicht gefunden werden\n"; 

while (<$in>) {
    chomp($_);   
    @a  = split(/\t/, $_);
    push(@neu, "$a[1]\t$a[13]\n");
}
close($in);

open($datei, ">", "Neu.txt");

foreach (@neu) {
    print $datei $_;
}

close($datei);

Last edited: 2015-10-28 20:50:45 +0100 (CET)

View full thread Array zeilenweise auslesen