
Jasmine
Administrator
Jan 19, 2001, 2:59 PM
Post #1 of 1
(1937 views)
|
|
How can I expand variables in text strings?
|
Can't Post
|
|
(From the Perl FAQ) How can I expand variables in text strings? 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?''.
|