Я использую функцию split, чтобы разделить строку на пробел, и по какой-то причине split сохраняет белые пробелы в массиве, который я сохраняю. Вот кодPerl Split Issue
while (<FP>) {
if (/$END_SECTION/) { last; }
if (/^\s*$/) { next; }
chomp;
($name, $value) = split m/:/, $_;
print __LINE__, "name: $name Value: $value\n" if $debug;
if ($name =~ /Diameter/) { #if Diameter is found
print __LINE__, "Diameter: $value\n" if $debug;
@fields = split /\s/, $value;
print __LINE__, " Fields:@fields\n" if $debug;
my $wafer_size = $fields[1]; #save index [0] to wafer_size
print __LINE__, "Diameter: $wafer_size\n" if $debug;
if ($wafer_size =~ /8/) {
$p->{Diameter} = "200";
} elsif ($wafer_size =~ /6/) {
$p->{Diameter} = "150";
}
print __LINE__, "Diameter: $p->{Diameter}\n" if $debug;
}
}
текст Я Расщепление это:
Wafer Diameter: 8 IN
Flat Location (T,B,L,R): L
Die X Step: 31800 UM
Die Y Step: 25795 UM
когда код находит /Diameter/
это экономит пустые пространства в @fields
массиве. Любая идея, почему это происходит?
Я подозреваю, что проблема была неверно сформулирована. Разделение «Диаметр вафли: 8 IN» в двоеточии оставит «$ value», начиная с одного пробела. Разделение на '\ s' приведет к созданию списка с пустой строкой в качестве первого элемента. Не «пустое пространство», которое описывает ОП. – Borodin
@Borodin О, да, вот что это такое - я неправильно понял. Я думал, что проблема состоит в том, чтобы расщепить часть до ':' по какой-то причине. Теперь ясно, я подкорректирую. Спасибо. – zdim