[Alug] PERL REPLACEMENT :-(((

Jia Baoyu JiaBaoyu at t-online.de
Fre Apr 4 21:52:12 CEST 2003


Hallo,

seit etwa 3 Tagen suche ich eine Loesung Aus Logfile liest das Script 
die Spaltennummer::

# ANFANG: Auslesen des Configfiles

open(CONFIG,"mike.config") or die "Error! $!\n";

close(CONFIG);

# alte Inhalten oeffnen :
open (CONFIG, "mike.config");

while (defined($line = <CONFIG>)) {

if ($line=~/^\d+?/)
{

$line=~s/^(\d+?).*?$/$1/;

$Name .= '$'.$1;

}

else { }

} # while1 ist fertig
close(CONFIG);

# ENDE: Auslesen des Configfiles

die man in Datei $Name in Form $1$2$3$4... schreibt. Zum Schluess 
entfehrne ich die ueberfluessige Spalten:

$line=~s/^(.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)$/$ Name/;

Trotzt meiner Erwartungen ersetzt das Script die Spaltennamen durch 
$1$2$3$4$5$6$7$8$9

Das ist Auszug aus Outputfile:

$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9

Wenn ich die Variable direkt definiere:

$Name = "$2$3$7$8$9";
$line=~s/^(.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)$/$ Name/;

wird in dem Fall die Zeile ordentlich behandelt, hier ist wieder dar 
Auszug aus dem Output:

20030331022604|ETC330-09|BlockedReadyToUnload|2|AF004162||||
20030331022625|ETC330-09|MatRmvd|2|AF004162||||
20030331022626|ETC330-09|PortNotAssociated|2|AF004162||||
20030331022655|ETC330-09|MatRcvd|2|AF004162||||
20030331022820|ETC330-09|MatRcvd|2|AF004162||||

Wo liegt Unterschied zwischen zwei $Name?

Noch was unerklaerbares:

$test = "$1$2$3$4$5$6$7$8$9";

if ($test eq $Name)
{
print "Ok!";
}
else {print "No!"}


Hier kommt "No!" -> ($test eq $Name)

$test = "$1$2$3$4$5$6$7$8$9";

if ($test == $Name)
{
print "Ok!";
}
else {print "No!"}


Hier kommt "Ok!" -> ($test == $Name)


Cu,

Jia