[vienna.pm] interpolative context
Stefan Weiss
spaceman.spiff at foo.at
Thu Aug 9 14:03:10 CDT 2001
* * * vienna-pm-list * * *
From: "Johannes Fuernkranz" <juffi at ai.univie.ac.at>
> Eine einfache Frage, fuer die mir ueberraschenderweise das Kamel keine
> Antwort zu geben scheint:
Aber perldoc hat eine Antwort:
perldoc -q "expand variables"
| 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; # no /e needed
|
| 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 /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.
HTH,
stefan
###
You are subscribed to vienna-pm-list as "Stefan Weiss" <spaceman.spiff at foo.at>
http://www.fff.at/fff/vienna.pm/
More information about the Vienna-pm
mailing list