Re: matching sets and ids



Himanshu Ardawatia am Sonntag, 26. November 2006 11:49:
Hi,

Hi

I have two files :
File A contains the following :
((((9,(6,8)),((4,((3,2),1)),5)),(12,11)),(13,(7,10)));

File B contains the follwoing:
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
10 J
11 K
12 L
13 M

Based on the file B, I want to modify the file A such that all numerics in
file A get changed to the alphabets in column 2 of file B (by mapping
column 1 of file B to file A) such that file A is effectvly modified to :
((((I,(F,H)),((D,((C,B),A),E)),(L,K)),(M,(G,J)));

Is there a way of doing it in perl ?

Certainly!

#!/usr/bin/perl

use strict;
use warnings;

my $str='((((9,(6,8)),((4,((3,2),1)),5)),(12,11)),(13,(7,10)));';
my %subst=qw( 1 A 2 B 3 C 4 D 5 E 6 F 7 G 8 H 9 I 10 J 11 K 12 L 13 M );

$str=~s/(\d+)/$subst{$1}/g;
print $str;

__END__

perldoc perlre
perldoc perlop

To avoid the impression that this list is a script service: Try to
initialize %substr from file and process the input file line per line.
If you then have further questions, please provide what you tried and ask
again :-)

See

perldoc open
perldoc close
perldoc chomp
perldoc -f while

Hope this provides a start!

Dani
.