Schönen guten Abend,
Erstmal: Benutze use strict;.
Was genau funktioniert denn nicht bzw. was funktioniert bei dir im moment? Matcht$var1
die Zeile nicht? Findet keine Ersetzung statt?»» print OUTPUTDATEI $_;
Du weisst, dass du in die OUTPUTDATEI den Dateiinhalt der INPUTDATEI in der Menge der Zeilen der Datei schreibst?
»»
Das Problem ist gelöst. Tatsächlich funktioniert folgender Code:
#!usr/bin/perl
use utf8;
use warnings;
use strict;
open INPUTDATEI, "<", "e:\\---.txt" || die "Datei nicht geoeffnet, weil: $!";
open ZWEITEINPUTDATEI, "<", "e:\\----test.txt" || die "Datei nicht geoeffnet, weil: $!";
open OUTPUTDATEI, ">", "e:\\----.txt" || die "Datei nicht geoeffnet, weil: $!";
my @inputdatei = <INPUTDATEI>;
my @zweiteinputdatei = <ZWEITEINPUTDATEI>;
foreach (@zweiteinputdatei){
my $var1 =$_;
#chomp $var1;
foreach (@inputdatei)
{
$_=~s#$var1#TEST#;
my $var2 = $_;
print OUTPUTDATEI "$var1"."-------->"."$var2\n";
}
}
Das Problem war nicht die Variableninterpolation (funktioniert auch ohne \Q). Vielmehr war tatsächlich (wie von Beat vermutet) das Line-Feed am Ende Schuld, dass kein match stattfand. chomp $var1 hat jedenfalls nicht funktioniert und das line-feed wie erhofft entfernt. oder es hat nur das line feed und nicht das newline entfernt (sind in windows doch unterschiedliche sachen oder?).
Vielleicht kannst Du Deinen Satz:
Du weisst, dass du in die OUTPUTDATEI den Dateiinhalt der INPUTDATEI in >>der Menge der Zeilen der Datei schreibst?
noch erläutern. Ist zwar für das konkrete Problem u.U. unerheblich aber interssiert mich trotzdem.
vielen dank für eure hilfe!
mfg
mrks