Variableninterpolation in Suchmustern

Der Vergleichsoperator benimmt sich, als wäre er ein String in doppelten Anführungszeichen, und interpoliert jegliche Variablen, die er findet. Das ermöglicht uns, kurz mal ein grep-ähnliches Programm zu schreiben:

#!/usr/bin/perl -w
my $was = "larry";

while (<>) {
    if (/\A($was)/) {  # Suchmuster am Anfang des Strings verankern
        print "Am Anfang von $_ steht $was";
  }
}

Das Muster besteht nun aus dem Inhalt von $was, wenn wir den Mustervergleich durchführen. Das ist so, als hätten wir /\A(larry)/ geschrieben, um larry am Anfang einer Zeile zu finden.

Anstatt den Wert von $was als literalen String einzulesen, hätten wir ihn auch als Kommandozeilenargument aus @ARGV holen können:

my $was = shift @ARGV;

Wäre das erste ...

Get Einführung in Perl, Sixth Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.