Hi Stuart,
@testarray gets the content of testmessage.txt, which contains the string '$name'. You cannot manipulate this string by setting the variable $name. You could do:
@testarray =~ s/\$name/$name/g;
which will replace the literal string '$name' using your variable's content.
or more generally
#!perl
use strict; use warnings;
my $name = "Randy";
while (my $line = <DATA>) { $line =~ s/[^\\](\$\w+)\W/eval $1/eg; print $line; }
__DATA__ My name is $name.
For each line we read in, we look for any occurence of a unescaped dollar sign (i.e. not preceeded by a backslash) followed by any characters valid in a variable name up to any non-valid character. We then substitute that for the current value of that variable within our program.
Regards, Randy.
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>