对不起这个微不足道的问题,但现在是。我有一个要解析的文件。它从一些空格开始,然后是第一个字段,然后是更多空格,另一个字段等。
例如:
000123 KST B4765
我把它分成如下:
my @fields = split /\s+/;
分割时可以正常工作,只有一个例外:$fields[0]
是123
,我希望将其保留为"000123"
,就像它一样 - 一个普通的字符串。
以下是完整的部分:
open UU, "<$file", or die;
while (<UU>) {
chomp;
next if /^\#/;
my @fields = split/\s+/;
my $pno = 'EQ'."$fields[1]";
print "$pno\n";
}
答案 0 :(得分:3)
不,000123
将存储为字符串。但是,如果您不小心将其转换为数字,则可能会将其视为数字。 E.g。
my @fields = split ' ', "000123 KST B4765";
print $fields[0]; # prints 000123
$fields[0] += 0; # converts string to number
print $fields[0]; # prints 123
另请注意,使用/\s+/
类似于使用默认的' '
,因为它会在空格上拆分,除了它不会去除前导空格,这可能是您想要的也可能不是。< / p>