in reply to How to replace multiple items with corresponding items from a database
I'm sure there's a much quicker way to do it, but that works...# names.txt 1000:John Smith 2000:Jane Doe 3000:John Doe 4000:George Bush 5000:Saddam Hussein # ids.txt blah blah blah blah -- this line contributed by 1000 foo bar baz etc etc contributed by 4000, my old friend once upon a time thanks to 3000 for his help it was a dark and stormy night, wrote 1000 this line written by both 5000 and 2000 Script: use strict; my ($id,$name,$number,%database); open(NAMES,'names.txt') || die "$!"; while(<NAMES>){ chomp($_); ($id,$name) = split(':',$_); $database{$id} = $name; } close(NAMES); open(IDS,'ids.txt') || die "$!"; open(IDSREPLACED,'>ids-replaced.txt') || die "$!"; while(<IDS>){ foreach $number (keys(%database)){ $_ =~ s/$number/$database{$number}/g; } print IDSREPLACED $_; } # produces blah blah blah blah -- this line contributed by John Smith foo bar baz etc etc contributed by George Bush, my old friend once upon a time thanks to John Doe for his help it was a dark and stormy night, wrote John Smith this line written by both Saddam Hussein and Jane Doe
Every bit of code is either naturally related to the problem at hand, or else it's an accidental side effect of the fact that you happened to solve the problem using a digital computer.
M-J D
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: How to replace multiple items with corresponding items from a database
by gordons (Initiate) on Feb 21, 2003 at 02:53 UTC | |
by Cody Pendant (Prior) on Feb 21, 2003 at 03:12 UTC | |
by gordons (Initiate) on Feb 22, 2003 at 05:09 UTC |