-1

些細な質問で申し訳ありませんが、ここにあります。解析するファイルがあります。いくつかの空白で始まり、最初のフィールド、さらに空白、別のフィールドなどです。

例えば:

000123 KST B4765 

私は次のように分けました。

my @fields = split /\s+/;

1 つの例外を除いて、分割で問題なく動作します。$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";
}
4

1 に答える 1

3

いいえ、000123文字列として保存されます。ただし、誤って数値に変換すると、数値として表示される場合があります。例えば

my @fields = split ' ', "000123 KST B4765";
print $fields[0];   # prints 000123
$fields[0] += 0;    # converts string to number
print $fields[0];   # prints 123

/\s+/また、使用は空白で分割されるという点でデフォルトの使用と似ていることに注意してください' '。ただし、先頭の空白が削除されない点が異なります。

于 2012-12-30T11:47:18.707 に答える