我正在学习 perl 和正则表达式。以下代码:
my $data = "Bule beatles battling a blowing breeze";
my $results = $data =~ m/beatles battling/;
print "results: $results\n";
产生这个输出:
C:\scripts\perl\sandbox>regex.pl
results: 1
稍作改动,我就得到了我想要的结果:
print "results: $&\n";
results: beatles battling
我还注意到我不需要创建 $results:
my $data = "Bule beatles battling a blowing breeze";
$data =~ m/beatles battling/;
print "results: $&\n";
在我阅读的各种 perl 教程中,一些示例使用以下语法:
my $results = $data =~ m/string_to_match/;
我的问题:
- 什么时候应该创建 $results 而不是直接对 $data 执行正则表达式?
- 为什么我尝试打印 $data 时返回“1”?(我认为它正在返回匹配的长度......)
- 创建 $results 有用吗?如果不是,我将如何处理多个结果?
例如:
my $data = "Bule beatles battling a blowing breeze";
my $results1 = $data =~ m/beatles/;
my $results2 = $data =~ m/battling/;
非常感谢 :)