Stell dir vor, du willst folgendes machen, eine anglophone Ausgabe von Text mit einer Variable.
Nämlich den Besitzer eines Hauses.
Kein Problem, denkst du, geht doch so einfach:
use strict;
use warnings;
my $owner = "Jonny Walker";
print "This is $owner's home.";
und erzeugt:
Name "owner::s" used only once: possible typo at - line 1.
Use of uninitialized value $owner::s in concatenation (.) or string at - line 1.
This is home.
Upps!? Nun ja. Klappt nicht so wie du willst.
Warum?
$owner's bedeutet in alten und jetzigem Perls
$owner::s.
Also wie dann?
Einfach den Variablennamen herzen (klammern, embrace) in der Zeichenkette.
So:
use strict;
use warnings;
my $owner = "Jonny Walker";
print "This is ${owner}'s home.";
und das erzeugt:
This is Jonny Walker's home.
Gefahr erkannt, Gefahr gebannt.