Perl interpolates variables in double quoted strings safely.
Everything in the variable is considered to be a literal.
So
my $a = q#${system('rm -rf /')}#;
print "The command in \$a is $a\n";
will print out:
The command in $a is ${system('rm -rf /')}
and not even attempt to remove my files. Likewise this
my $b = "The command in \$a is $a\n";
sets $b to the string we printed out. Printing $b does
exactly the same as the above. The only way this
is going to come and cause us grief is if we eval $a - as
you've suggested.
Perhaps the author is mistaken or you've misunderstood the
reference, can you post the paragraph or two? I've checked
the book errata and it's not mentioned anywhere there, but it's
a pretty big mistake if you haven't misunderstood it.
Even authors make mistakes. :)