我根本不习惯perl并且语法有问题。我将如何在下面返回“棕色”?从我正在阅读的内容来看,这应该有效。
my $text = "the quick brown dog";
print "$text\n";
my $newvar = $text =~ m/quick (.*) dog/;
print "$newvar\n";
答案 0 :(得分:3)
my $newvar = $text =~ m/ quick (.*) dog /;
是标量上下文中的赋值,并指定1
或undef
。
您想在列表上下文中进行此分配
my ($newvar) = $text =~ m/ quick (.*) dog /;
从正则表达式中分配捕获的组。
标量和列表上下文之间的区别是在Perl中习惯的最棘手的事情之一。
请注意,Perl中正则表达式中捕获的组也会被分配给特殊变量$1
,$2
,....所以你也可以说了
print "$1\n";