epanda wrote:
> 
> I have to do a substitution of a pattern in a text file,
> 
> this pattern is a key of a hash table previously set.
> 
> 
> so I want to replace my pattern by the corresponding value of the key
> in the hash table
> 
> 
> ex :
> 
> file :   n1 n22
> 
> hash :   n1 => wordA
>             n2 => wordB
>             n22 => wordN
> 
> I want to have filenew like this :
> 
> file :  wordA wordN
> 
> 
> 
> 
> with a single %s/pattern/hashpattern/g  expression

Something like this maybe?

HTH,

Rob


use strict;
use warnings;

my $str = 'n1 n22';

my %hash = (
  n1  => 'wordA',
  n2  => 'wordB',
  n22 => 'wordN',
);


my $re = join '|', keys %hash;
$re = qr/\b(?:$re)\b/o;

$str =~ s/($re)/$hash{$1}/g;
print $str;

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to