Start with a tiny Perl program that stores a name and prints a greeting.

scalar variable A scalar variable begins with `$` and stores one value, such as a string or number.

Hello Perl

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

my $name = "Perl";
my $message = "Hello, $name!";

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

my $name = "Ada";
my $message = "Hello, $name!";

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

my $name = "Larry";
my $message = "Hello, $name!";

print "$message\n";
  1. $name ← Perl, $message ← Hello, Perl!

    4my $name→ Perl = "Perl"; #@name="Ada", "Larry"5my $message→ Hello, Perl! = "Hello, $namePerl!";67print "$messageHello, Perl!\n";
    outputHello, Perl!
  1. $name ← Ada, $message ← Hello, Ada!

    4my $name→ Ada = "Ada";5my $message→ Hello, Ada! = "Hello, $nameAda!";67print "$messageHello, Ada!\n";
    outputHello, Ada!
  1. $name ← Larry, $message ← Hello, Larry!

    4my $name→ Larry = "Larry";5my $message→ Hello, Larry! = "Hello, $nameLarry!";67print "$messageHello, Larry!\n";
    outputHello, Larry!

What Happens

  1. use strict and use warnings keep the small script checked.
  2. $name starts as "Perl".
  3. $message becomes Hello, Perl!.
  4. The program prints Hello, Perl!.

Value Map

| name | message | | --- | --- | | Perl | Hello, Perl! | | Ada | Hello, Ada! | | Larry | Hello, Larry! |

Try It

Exercise: hello.pl

Reproduce Hello, Perl!, then use the pinned names Ada and Larry to predict each greeting.