Beat: Ersetzen von mehreren Wörtern in einer Zeile einer Datei

Beitrag lesen

foreach $replace(@data)
{
if(index($replace,"SC-FTP") != -1)
  {
   $test = $replace;
   $test =~ m/^(.)SC-FTP {1}([A-Za-z0-9]) {1}([A-Za-z0-9]) {1}([A-Za-z0-9]) {1}(.*)$/;
   $2 =~ s/[a-zA-z0-9]/Servername/;
   $3 =~ s/[a-zA-z0-9]/User ID/;
   $4 =~ s/[a-zA-z0-9]/Password/;
   print $test;
  }
}


>   
> Mein Problem ist, das ich nur eine Warnmeldung bekomme á la:  
> Modification of a read-only value attempted!  
> Wo ist denn der Fehler bzw. wie kann ich das machen was ich vorhabe??  
  
Du versuchst. $2 .. $4 zu modifizieren, was nicht geht.  
kommt man auch nur mit s/// aus  
  
~~~perl
  
foreach( @data ){  
    s/^  \bSC-FTP\s  
         [A-Za-z0-9]*\s  
         [A-Za-z0-9]*\s  
         [A-Za-z0-9]*\s  
     /SC-FTP Servername User ID Password /x;  
}  

Bist du sicher dass du
    [A-Za-z0-9]*
meinst und nicht
    [A-Za-z0-9]+

mfg Beat

--
Woran ich arbeite:
X-Torah
   <°)))o><                      ><o(((°>o