A regex can look for a fixed piece of text inside a scalar.

literal match A literal match searches for the exact characters written in the pattern.

Literal Match

text
literal_match.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my $text = "Perl regex guide";
my $has_regex = $text =~ /regex/;
my $result = $has_regex ? "found" : "missing";

print "text=$text\n";
print "result=$result\n";
use strict;
use warnings;

my $text = "Ruby regex guide";
my $has_regex = $text =~ /regex/;
my $result = $has_regex ? "found" : "missing";

print "text=$text\n";
print "result=$result\n";
use strict;
use warnings;

my $text = "Perl loop guide";
my $has_regex = $text =~ /regex/;
my $result = $has_regex ? "found" : "missing";

print "text=$text\n";
print "result=$result\n";
  1. $text ← Perl regex guide, $has_regex ← 1, $result ← found

    4my $text→ Perl regex guide = "Perl regex guide"; #@text="Ruby regex guide", "Perl loop guide"5my $has_regex→ 1 = $textPerl regex guide =~ /regex/;6my $result→ found = $has_regex1 ? "found" : "missing";78print "text=$textPerl regex guide\n";9print "result=$resultfound\n";
    outputtext=Perl regex guide
    result=found
  1. $text ← Ruby regex guide, $has_regex ← 1, $result ← found

    4my $text→ Ruby regex guide = "Ruby regex guide";5my $has_regex→ 1 = $textRuby regex guide =~ /regex/;6my $result→ found = $has_regex1 ? "found" : "missing";78print "text=$textRuby regex guide\n";9print "result=$resultfound\n";
    outputtext=Ruby regex guide
    result=found
  1. $text ← Perl loop guide, $has_regex ← (empty), $result ← missing

    4my $text→ Perl loop guide = "Perl loop guide";5my $has_regex→ (empty) = $textPerl loop guide =~ /regex/;6my $result→ missing = $has_regex(empty) ? "found" : "missing";78print "text=$textPerl loop guide\n";9print "result=$resultmissing\n";
    outputtext=Perl loop guide
    result=missing

Follow the Match

  1. $text starts as Perl regex guide.
  2. The regex /regex/ looks for the exact text regex.
  3. The text contains that word.
  4. $has_regex is true.
  5. $result becomes found. | text | contains regex? | result | | --- | --- | --- | | Perl regex guide | yes | found | | Ruby regex guide | yes | found | | Perl loop guide | no | missing |

Exercise: literal_match.pl

Reproduce text=Perl regex guide and result=found, then use the pinned text variants to predict result=found for Ruby regex guide and result=missing for Perl loop guide.