my $p = "$2$1"; # my $p = $2.$1;
# Doesn't change the value of $2 or $1.
####
my $p = "$ARGV[0]"; # my $p = "".$ARGV[0];
# Doesn't change the value of $ARGV[0].
####
use String::Interpolate qw( interpolate);
my $t = '$1$2';
or
my $t = $ARGV[0];
my $p = interpolate($t);