Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Array Element Substitution

by Marshall (Prior)
on Aug 24, 2012 at 10:17 UTC ( #989480=note: print w/ replies, xml ) Need Help??


in reply to Array Element Substitution

I guess that this would also be a solution.
Adapt to your application..

#!/usr/bin/perl -w use strict; my $heredoc = <<END; This is a whole bunch of stuff with Jupiter and Mars and Earth and Venus and Saturn. Also could be Earth and Earth and something else like Neptune. END my $xlatedoc = <<END; Jupiter host1 Mars host2 Earth host3 END my %xlate; open (XLATE, '<', \$xlatedoc) or die "xlatedoc failed: $!\n"; while (<XLATE>) { my ($planet, $host) = split; #no chomp() needed $xlate{$planet}=$host; } close (XLATE); my @planets = keys %xlate; my $all_planets = join ('|',@planets); open (IN, '<', \$heredoc) or die "heredoc failed: $!\n"; while (<IN>) { s/($all_planets)/$xlate{$1}/g; # $all_planets is an OR expression # $1 winds up being which one of the OR'ed terms matched # that gets translated to the new term print; } __END__ This is a whole bunch of stuff with host1 and host2 and host3 and Venus and Saturn. Also could be host3 and host3 and something else like Neptune.


Comment on Re: Array Element Substitution
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (14)
As of 2015-07-30 16:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (273 votes), past polls