如何用空格和前导零分割Perl

时间:2012-12-30 11:39:04

标签: perl

对不起这个微不足道的问题,但现在是。我有一个要解析的文件。它从一些空格开始,然后是第一个字段,然后是更多空格,另一个字段等。

例如:

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";
}

1 个答案:

答案 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>