数组Perl中的字符串长度始终返回1

时间:2015-03-09 12:40:59

标签: arrays regex string perl

我正在尝试获取数组元素的长度(字符串),但每次都得到1 这是我的代码

while (my $line =<$file>) {
  chomp $line;
my @words = split('', $line);
foreach my $element (@words)
{
  print length($element);
}

长度总是返回1,但是对于其他变量,它可以正常工作 请帮助找到问题。

2 个答案:

答案 0 :(得分:4)

您使用了

split('', $line)

告诉Perl将$line拆分为单个字符。我认为你打算使用

split(' ', $line)

这告诉Perl将$line拆分为“单词”(由空格分隔的字符序列)。

答案 1 :(得分:1)

split function中使用regexpr:

my @words = split(/\s+/, $line);

\s表示whitespace+一个或多个发生次数