Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Is there any way to ignore certain words and keep it as it is when substituing hash values to a matched pattern in a string?

by mr_ron (Chaplain)
on Apr 03, 2018 at 00:57 UTC ( #1212211=note: print w/replies, xml ) Need Help??


in reply to Is there any way to ignore certain words and keep it as it is when substituing hash values to a matched pattern in a string?

Appropriating from ideas of several other postings including the OP, tybalt89's example, haukex' s use of \b, and a hopefully plausible approach to Corion's concern about case sensitivity, perhaps the following is simple but still adequate. Lower casing the "cat" may or may not be the exact right approach to being case insensitive.

use strict; use warnings; my %cats = ( blackcat=>5, whitecat=>10,orangecat=>20 ); my $texttosub = 'log10(blackcat)*whitecat*(log10(orangeCat))'; $texttosub =~ s/\b(?!log10)([a-zA-Z][A-Za-z_0-9]+)\b/$cats{lc $1}/ige; print "$texttosub\n";

Output

log10(5)*10*(log10(20))
Ron
  • Comment on Re: Is there any way to ignore certain words and keep it as it is when substituing hash values to a matched pattern in a string?
  • Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1212211]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2022-12-09 12:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?