[Perl] merge DB problem
Ido Trivizki
ido at hotmail.com
Tue Oct 22 06:15:08 PDT 2002
my @file1=('a','b','c');
my @file2=('a','c','d');
my %file2=map +($file2[$_],$_),0..$#file2;
for(grep {not exists $file2{$file1[$_]}} 0..$#file1){
if($_ and exists $file2{$file1[$_-1]}){
splice @file2,$file2{$file1[$_-1]}+1,0,$file1[$_]
}elsif($_!=$#file1 and exists $file2{$file1[$_+1]}){
splice @file2,$file2{$file1[$_+1]},0,$file1[$_];
}else{push @file2,$file1[$_]}
}
Or something...
HTH;)
----- Original Message -----
From: <Yossi.Itzkovich at lightscapenet.com>
To: <perl at perl.org.il>
Sent: Tuesday, October 22, 2002 1:49 PM
Subject: [Perl] merge DB problem
>
> Hi,
>
> I have two files with many records with the format of :
>
> Name N
> valLine#1
> valLine#2
> ...
> valLine#N
>
>
> N indicates how many following lines this records has.
>
> I need to merge 2 such files, which is prety simple using 2 hashes, but I
> want to add records from file1 (that are missing in file2) in the same
> order/position to file2.
>
> For example:
>
> File1 is:
> a 2
> aa
> aa
> b 1
> bb
> c 1
> cc
>
> File 2 is:
> a 2
> aa
> aa
> c 1
> cc
> d 1
> dd
>
>
> I want record "b" from file 1 to be added after record "a". How can I
> change the original solution (using 2 hashes and merge and checking
> existance of keys) to suit this one too? I need a simple solution as
> possible.
>
> Thanks
>
> Yossi
>
>
>
>
> _______________________________________________
> Perl mailing list
> Perl at perl.org.il
> http://www.perl.org.il/cgi/listinfo/perl
>
More information about the Perl
mailing list