I need something like this to work my %hash = (1=>"abc", 2=>"xyz"); my $line = '1324'; $line =~ s/[12]/$hash{$1}/g; print $line . "\n";
#expected result abc3xyz4 #actual result 34 On Thu, 1 Aug 2002 13:01:41 -0400 , [EMAIL PROTECTED] (Bob Showalter) wrote: >> -----Original Message----- >> From: chris [mailto:[EMAIL PROTECTED]] >> Sent: Thursday, August 01, 2002 12:58 PM >> To: [EMAIL PROTECTED] >> Subject: Regexp to match by hash key and replace with hash value? >> >> >> Can I do the following with a single replace? >> >> my %hash = ("1","abc", "2","xyz"); >> my $line = '12'; >> while( my($key, $val) = each(%hash) ) { >> $line =~ s/$key/$val/g; >> } >> print $line . "\n"; > >Assuming your hash keys are all single digits: > > $line =~ s/(\d)/$hash{$1}/eg; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]