CGI/Perl Guide | Learning Center | Forums | Advertise | Login
Site Search: in

  Main Index MAIN
INDEX
Search Posts SEARCH
POSTS
Who's Online WHO'S
ONLINE
Log in LOG
IN

Home: Perl Programming Help: Frequently Asked Questions:
How can I expand variables in text strings?

 



Jasmine
Administrator

Jan 19, 2001, 2:59 PM

Post #1 of 1 (2584 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:

Code
    $text = 'this has a $foo in it and a $bar';

If those were both global variables, then this would suffice:

Code
    $text =~ s/\$(\w+)/${$1}/g;

But since they are probably lexicals, or at least, they could be, you'd have to do this:

Code
    $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:

Code
    %user_defs = (  
foo => 23,
bar => 19,
);
$text =~ s/\$(\w+)/$user_defs{$1}/g;

See also ``How do I expand function calls in a string?''.



 
 


Search for (options) Powered by Gossamer Forum v.1.2.0

Web Applications & Managed Hosting Powered by Gossamer Threads
Visit our Mailing List Archives