【发布时间】:2016-12-29 19:25:03
【问题描述】:
我正在使用 split 函数在空白处拆分字符串,出于某种原因 split 将空白保留在我正在保存的数组中。这是代码
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 数组中。知道为什么会这样吗?
【问题讨论】:
标签: perl