so hatte ich mir das mit dem einlesen gedacht:
my $i = 0;
my $j = 0;
open(DATEI_1, "datei_1") || die "Datei nicht gefunden";
In $! steht der wirkliche Grund, warum das öffnen scheitert.
open(DATEI_1, "datei_1") || die "Kann Datei nicht öffnen, weil: $!";
foreach $inhalt_1 (@Zeilen_1) {
++$i;
foreach $inhalt_2 (@Zeilen_2) {
++$j;
if ( $inhalt_1[$i] =~ /$inhalt_2[$j]/ ) {
Du brauchst den Index gar nicht zumal er falsch ist.
$inhalt_1 und $inhalt_2 enthalten die aktuelle Zeile.
Einfacher wäre es aber nicht erst die ganze Datei einzulesen, zumal das u.U. viel Speicher verbrät, du könntest so direkt die Zeilenummer mit $. ermitteln.
Also in etwa so:
[code lang=perl]#!/usr/bin/perl -w
use strict;
open(DATEI_1, "datei_1") || die "Kann Datei nicht öffnen, weil: $!";
my @suchen = <DATEI_1>;
close(DATEI_1);
open(DATEI_2, "datei_2") || die "Kann Datei nicht öffnen, weil: $!";
while my $zeile(<DATEI_2>)
{
foreach my $suche (@suchen)
{
# jedes Suchwort in der aktuellen Zeilen suchen
if ( $zeile =~ /$suche/ )
{
print "$suche Gefunden in Zeile: $.\n";
}
}
}
Struppi.
--
[Javascript ist toll](http://javascript.jstruebig.de/)