私は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/;
私の質問:
- $data に対して直接正規表現を実行する代わりに、いつ $results を作成する必要がありますか?
- $data を印刷しようとすると「1」が返されるのはなぜですか? (マッチの長さを返していると思います...)
- $results を作成すると便利ですか? いいえの場合、複数の結果をどのように処理しますか?
例えば:
my $data = "Bule beatles battling a blowing breeze";
my $results1 = $data =~ m/beatles/;
my $results2 = $data =~ m/battling/;
どうもありがとう :)