Du musst das '|' maskieren, wenn Du es als Delimiter nutzen willst... split erhält als ersten Parameter ein Pattern, mit dem ein Patternmatching ausgeführt wird. [] . | ? * usw. kommen daher eine besondere Bedeutung zu.
In Deinem Fall müsstest Du also
Code:
my @name = split(/\|/,$pcs[$a]);
machen, um den String am '|' - Zeichen aufzutrennen.
Hier noch ein Hinweis zum Rest des Programms:
foreach
In einer foreach Schleife brauchst du keinen Zähler... im Schleifenblock hast Du immer das aktuelle Array Element in $_ bzw einer von Dir gewählten Variable:
Code:
foreach (@lines)
{
print;
#oder
print $_;
#oder auch
my ($Element1,$Element2) = split(/,/);
}
oder auch
Code:
foreach my $line (@lines)
{
print $line;
#und so weiter....
}
Lesezeichen