1

私はperlにまったく慣れておらず、構文に問題があります。次のように「茶色」を返すにはどうすればよいですか?私が読んでいることから、これはうまくいくはずです。

my $text = "the quick brown dog";
print "$text\n";
my $newvar = $text =~ m/quick (.*) dog/;
print "$newvar\n";
4

1 に答える 1

3
my $newvar = $text =~ m/ quick (.*) dog /;

スカラーコンテキストでの割り当てであり、またはのいずれ1かを割り当てますundef

この割り当てをリストコンテキストで行いたい

my ($newvar) = $text =~ m/ quick (.*) dog /;

これは、正規表現からキャプチャされたグループを割り当てます。

スカラーコンテキストとリストコンテキストの違いは、Perlで慣れるのに最も難しいことの1つです。

$1Perlの正規表現からキャプチャされたグループも、特別な変数、、$2...に割り当てられることに注意してください。だからあなたも言ったかもしれない

print "$1\n";
于 2013-02-01T22:17:42.530 に答える