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

substituting with hash data

by Anonymous Monk
on Aug 16, 2001 at 18:00 UTC ( #105377=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I need to do simple substitution using the keys and values of a hash table. But I'm new and can't get it to work. I just want the script to check for a "key" in the hash, and replace it with its corresponding "value." Any help??

Replies are listed 'Best First'.
Re: substituting with hash data
by Cirollo (Friar) on Aug 16, 2001 at 18:04 UTC
    Something like this perhaps?
    $string =~ s/$_/$hash{$_}/g for (keys %hash);
Re: substituting with hash data
by Masem (Monsignor) on Aug 16, 2001 at 18:05 UTC
    It should be a simple substitution:
    $a = "this is a test"; %b = ( is => 'was' ); foreach my $key ( keys %b ) { $a =~ s/$key/$b{$key}/g; } print $a,"\n"; # output: thwas was a test

    Dr. Michael K. Neylon - || "You've left the lens cap of your mind on again, Pinky" - The Brain

Re: substituting with hash data
by davorg (Chancellor) on Aug 16, 2001 at 18:06 UTC

    Do you mean something like:

    my $srch = join ('|', map {'\b.'quotemeta($_).'\b'} keys %trans); $text =~ s/($srch)/$trans{$1}/g;

    Looks like you're writing your own templating system. There are plenty of them on CPAN, why not look for one there.


    Perl Training in the UK <>

      Speaking of which... if you're looking to do HTML templating, you might take a look at this nice overview of your options (written by perrin): Choosing a Templating System

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://105377]
Approved by root
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2023-02-08 13:53 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (42 votes). Check out past polls.