Double-quoted strings can include scalar variables directly inside the text.

interpolation Interpolation replaces a variable name inside a double-quoted string with its value.

String Interpolation

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

my $name = "Ada";
my $count = 3;
my $message = "$name has $count tasks";

print "name=$name\n";
print "message=$message\n";
use strict;
use warnings;

my $name = "Linus";
my $count = 3;
my $message = "$name has $count tasks";

print "name=$name\n";
print "message=$message\n";
use strict;
use warnings;

my $name = "Grace";
my $count = 3;
my $message = "$name has $count tasks";

print "name=$name\n";
print "message=$message\n";
  1. $name ← Ada, $count ← 3, $message ← Ada has 3 tasks

    4my $name→ Ada = "Ada"; #@name="Linus", "Grace"5my $count→ 3 = 3;6my $message→ Ada has 3 tasks = "$nameAda has $count3 tasks";78print "name=$nameAda\n";9print "message=$messageAda has 3 tasks\n";
    outputname=Ada
    message=Ada has 3 tasks
  1. $name ← Linus, $count ← 3, $message ← Linus has 3 tasks

    4my $name→ Linus = "Linus";5my $count→ 3 = 3;6my $message→ Linus has 3 tasks = "$nameLinus has $count3 tasks";78print "name=$nameLinus\n";9print "message=$messageLinus has 3 tasks\n";
    outputname=Linus
    message=Linus has 3 tasks
  1. $name ← Grace, $count ← 3, $message ← Grace has 3 tasks

    4my $name→ Grace = "Grace";5my $count→ 3 = 3;6my $message→ Grace has 3 tasks = "$nameGrace has $count3 tasks";78print "name=$nameGrace\n";9print "message=$messageGrace has 3 tasks\n";
    outputname=Grace
    message=Grace has 3 tasks

Follow the Scalar

  1. $name starts as Ada.
  2. $count is 3.
  3. $message becomes Ada has 3 tasks.
  4. The program prints name=Ada and message=Ada has 3 tasks. | name | count | message | | --- | --- | --- | | Ada | 3 | Ada has 3 tasks | | Linus | 3 | Linus has 3 tasks | | Grace | 3 | Grace has 3 tasks |

Exercise: string_interpolation.pl

Reproduce message=Ada has 3 tasks, then use names Linus and Grace to predict each message.