Perl regex: Verwendung von $&

Lerne ich perl und regex. Die folgenden code:

my $data = "Bule beatles battling a blowing breeze";
my $results = $data =~ m/beatles battling/;
print "results: $results\n";

erzeugt diese Ausgabe:

C:\scripts\perl\sandbox>regex.pl
results: 1

Mit einer kleinen änderung, ich bekomme die Ergebnisse die ich will:

print "results: $&\n";
results: beatles battling

Mir ist auch aufgefallen, dass ich nicht brauchen, zu erstellen, $Ergebnisse:

my $data = "Bule beatles battling a blowing breeze";
$data =~ m/beatles battling/;
print "results: $&\n";

In den verschiedenen perl-tutorials, die ich gelesen habe, einige Beispiele, verwenden Sie die folgende syntax:

my $results = $data =~ m/string_to_match/;

Meine Fragen:

  • Wann sollte man erstellen $Ergebnis statt direkt tun, ein regex auf $data?
  • Warum erhalte ich eine "1" zurück, wenn ich versuchen zu drucken, $Daten? (Ich denke, es ist Rückkehr die Länge der Spiele...)
  • Ist es nützlich, um $Ergebnisse? Wenn Nein, wie würde ich das Angebot mit mehreren Ergebnissen?

Beispiel:

my $data = "Bule beatles battling a blowing breeze";
my $results1 = $data =~ m/beatles/;
my $results2 = $data =~ m/battling/;

Vielen Dank 🙂

Schreibe einen Kommentar