Scalar and Text Basics
String Interpolation
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
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";
$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
$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
$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
$namestarts asAda.$countis3.$messagebecomesAda has 3 tasks.- The program prints
name=Adaandmessage=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.