【发布时间】:2013-07-09 12:40:05
【问题描述】:
您好,我是 Perl 编程的新手,我编写了一个代码来使用正则表达式存储标量变量中的第一个数字,但我从最后一行获取第一个数字,但我需要来自第一行的数字。
例如在下面的代码中我需要$num = 22,但代码返回656。
my $num ;
my $sample = "fd 22 sdf sdf 96
dsf6 66s sd6 7777 sd
656 dd 55 ";
my @sentences = split(/\n/, $sample);
for my $line(@sentences)
{
($num )= $line =~ /([0-9]+) .*/ ;
}
print $num;
谁能告诉我我的逻辑有什么问题?
【问题讨论】:
-
每次循环时都会覆盖变量。
-
如果只关心第一行,为什么还要循环?
-
这只是测试用例,但在我的实际场景中,我想从电子邮件主题中获取数字,因此主题可以包含多行