Also ich habe mein Problem jetzt folgendermaßen gelöst, aber das ist mir viiiiel zu unsauber. Ich mags einfach nicht...auch wenns funktioniert!
use feature qw/:5.10/;
use strict;
use warnings;
use Tie::File;
#Definiere globale Variablen
my $buffer = '';
my $data = $ARGV[0];
my $replace = '';
my $test = '';
my $FIRST = '';
my $SNAME = '';
my $UID = '';
my $PWD = '';
my $LAST = '';
my @data;
my $new;
#Öffne Datei aus Benutzereingabe im readmodus
open(DB, "$data") || die "Can't open FTP-File!";
@data = <DB>;
close(DB);
#Durchlaufe Array mit Dateiinhalt zeilenweise und suche zu ersetzende Teilstrings
foreach $replace(@data)
{
if(index($replace,"SC-FTP") != -1)
{
$replace =~ m/^(.*)SC-FTP( {1}[A-Za-z0-9]*)( {1}[A-Za-z0-9]*)( {1}[A-Za-z0-9]*)( {1}.*)$/;
$FIRST=$1;
$SNAME=$2;
$UID=$3;
$PWD=$4;
$LAST=$5;
$SNAME =~ tr/[a-zA-z0-9]/X/;
$UID =~ tr/[a-zA-z0-9]/X/;
$PWD =~ tr/[a-zA-z0-9]/X/;
$buffer=$FIRST;
$buffer.=$SNAME;
$buffer.=$UID;
$buffer.=$PWD;
$buffer.=$LAST;
$buffer.="\n";
$replace = $buffer;
}
}
#Schreibe aktualisierte Daten in die Datei zurück
open(OUT, ">$data") || die "Can't write FTP-File!";
foreach $new(@data)
{print OUT $new;}
close(OUT);
Das muss doch schaffbar sein....irgendwie.
Das Problem ist das ich nie wirklich weiß wie der String aussieht, ich weiß nur eines nach SC-FTP kommt servername (ein leerzeichen) username (ein leerzeichen) passwort (ein leerzeichen) und noch irgendwas.
Und ich muss diese 3 Wörter durch IRGENDWAS ersetzen X's oder Wörter.
Liebe Grüße