1827: Verschachtelte for-each Schleifen mit s///

Beitrag lesen

Schönen guten Tag,

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>;

Sofern du die geöffneten Dateien nach dem speichern des Dateiinhalts in ein Array nicht mehr benötigst könntest du diese schonmal schließen.  

> ~~~perl
  

> foreach (@zweiteinputdatei){  
> 	my $var1 =$_;  
> 	#chomp $var1;  
> 

Wieso hast du hier chomp auskommentiert?

  				foreach (@inputdatei)  
  				{  
  								  
  								$_=~s#$var1#TEST#;  
  								my $var2 = $_;  
  								print OUTPUTDATEI "$var1"."-------->"."$var2\n";  
  				}  

}


>   
> oder es hat nur das line feed und nicht das newline entfernt (sind in windows doch unterschiedliche sachen oder?).  

<http://de.wikipedia.org/wiki/Zeilenvorschub>  

>   
> 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.  

Deine vorletzter Perl-Code sah so aus:  
  

> (...)  
> ~~~perl
  

> foreach (@zweiteinputdatei){  
> 	$var1 =$_;  
> 	foreach (@inputdatei)  
> 	{  
> 			$_=~s#\Q$var1#TEST#;  
> 			print OUTPUTDATEI $_;  
> 

Du schreibst hier in die OUTPUTDATEI die vordefinierte Variable $_, die eine Zeile des Arrays @inputdatei ist. Da das einschreiben in die Datei in einer Schleife ist wird jede Zeile in die Datei geschrieben, somit also das ganze Array @inputdatei was der ganze Dateiinhalt der INPUTDATEI ist.
Da du dich in einer weiteren Schleife (erstere) befindest wird die Schleife (zweitere) so oft durchgeführt wie die Datei ZWEITEINPUTDATEI Zeilen hat.
Ich hoffe du verstehst was ich meine.

  }  

}


-- 
suit: JavaScript ist nur das Schirmchen am Eisbecher - der Eisbecher muss auch ohne dem Schirmchen lecker sein.  
Selfcode: sh:( fo:) ch:| rl:( br:< n4:( ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:> js:)