Thread Probleme bei Schleifen (19 answers)
Opened by laplace at 2011-10-09 21:22

topeg
 2011-10-09 22:39
#152979 #152979
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Der Code funktioniert nicht weil eine Zeile mit einer Markierung versehen ist, welches es als Ende der selben markiert.

Dieses Zeilenende musst du entfernen. Nutze Dazu chomp.

Mal der code etwas überarbeitet:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
use strict;
use warnings;


my $file='test.txt';

open(my $fh,'<',"test.txt") or die("ERROR open $file ($!)");

while(my $line=<$fh>)
{
  chomp($line);
  if ($line eq "abcd"){
    print "es wurde ein STring gefunden\n";
  }
  else{
    print "in der Zeile steht eine Zahl\n";
  }
}

close($fh);


Wenn es dir um "nicht Zahlen" geht kannst du das auch so machen:
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
#!/usr/bin/perl
use strict;
use warnings;


my $file='test.txt';

open(my $fh,'<',"test.txt") or die("ERROR open $file ($!)");

while(my $line=<$fh>)
{
  chomp($line);
  # wenn ein Zeichen vorhanden ist das keine Zahl ist
  if ($line =~/\D/){
    print "es wurde ein STring gefunden\n";
  }
  else{
    print "in der Zeile steht eine Zahl\n";
  }
}

close($fh);

View full thread Probleme bei Schleifen