craano
21.10.06, 23:19
Hallo,
ich sehe gereade den Wald vor lauter Bäumen nicht.
Ich versuche eine Datei mit einem Perl Script zu durchsuchen.
Das klappt auch ganz gut, nur wenn ich den regulären Ausdruck, nach welchem ich suche, durch <STDIN> erfasse bekomme ich kein Ergebnis.
#!/usr/bin/perl -w
#
#
#
#
open(FILER,"111.t")
or die "Fehler beim Öffnen der Datei: $1";
my $suchen;
my @treffer;
print "Wonach soll gesucht werden: ";
$suchen = <STDIN>;
while(defined(my $i = <FILER>)) {
if($i =~ /.$suchen./) {
push(@treffer,$i);
}}
my $trefferzahl = @treffer;
print "$trefferzahl\n";
close(FILER)
or die "Fehler beim Schließen von 'neu.dat': $! ";
Wenn ich
$suchen = "555"; setze, ohne von <STDIN> zu lesen, läuft das script durch und liefert 55555977 Treffer. $suchen Von <STDIN> erfasst liefert leider 0 Ergebnisse.
Was verändert <STDIN> an meinem string?
Wird ein Zeichen angehängt? Vielleicht irgendwie \n oder \c? (Die beiden sind es nicht, das habe ich schon probiert).
Was muss ich an $suchen verändern/entfernen?
Grüße.
craano.
ich sehe gereade den Wald vor lauter Bäumen nicht.
Ich versuche eine Datei mit einem Perl Script zu durchsuchen.
Das klappt auch ganz gut, nur wenn ich den regulären Ausdruck, nach welchem ich suche, durch <STDIN> erfasse bekomme ich kein Ergebnis.
#!/usr/bin/perl -w
#
#
#
#
open(FILER,"111.t")
or die "Fehler beim Öffnen der Datei: $1";
my $suchen;
my @treffer;
print "Wonach soll gesucht werden: ";
$suchen = <STDIN>;
while(defined(my $i = <FILER>)) {
if($i =~ /.$suchen./) {
push(@treffer,$i);
}}
my $trefferzahl = @treffer;
print "$trefferzahl\n";
close(FILER)
or die "Fehler beim Schließen von 'neu.dat': $! ";
Wenn ich
$suchen = "555"; setze, ohne von <STDIN> zu lesen, läuft das script durch und liefert 55555977 Treffer. $suchen Von <STDIN> erfasst liefert leider 0 Ergebnisse.
Was verändert <STDIN> an meinem string?
Wird ein Zeichen angehängt? Vielleicht irgendwie \n oder \c? (Die beiden sind es nicht, das habe ich schon probiert).
Was muss ich an $suchen verändern/entfernen?
Grüße.
craano.