|
|
| XP is just a number | |
| PerlMonks |
How can I expand variables in text strings?by faq_monk (Initiate) |
| on Oct 08, 1999 at 00:20 UTC ( #605=perlfaq nodetype: print w/ replies, xml ) | Need Help?? |
|
Current Perl documentation can be found at perldoc.perl.org. Here is our local, out-dated (pre-5.6) version: Let's assume that you have a string like:
$text = 'this has a $foo in it and a $bar'; If those were both global variables, then this would suffice:
$text =~ s/\$(\w+)/${$1}/g;
But since they are probably lexicals, or at least, they could be, you'd have to do this:
$text =~ s/(\$\w+)/$1/eeg;
die if $@; # needed on /ee, not /e
It's probably better in the general case to treat those variables as entries in some special hash. For example:
%user_defs = (
foo => 23,
bar => 19,
);
$text =~ s/\$(\w+)/$user_defs{$1}/g;
See also ``How do I expand function calls in a string?'' in this section of the FAQ.
|
|