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

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


Reply via email to