hi again, and which i forgot to say: while merging file1 into file2 , no key should be double, the right key is the one in file1!!
so in fact it is a replacement of some lines in file2 by some lines in file1, and the lines that don't exist yet in file2 are appended. thanx, christophe folschette Folschette wrote: > hi again, > > i've got some problems using your script: > > best is if i give you the three files so here they are > file1 should be merged in file2 but file2 should have the same layout as > befor merging > > christophe folschette > > > Rob wrote: > >> Christophe >> >> I think using Tie::File is overkill here. Try this: >> >> # Merge the two files into a single hash >> # >> for $file ( 'file2.dat', 'file1.dat' ) >> { >> open FILE, "< $file"; >> >> while ( <FILE> ) >> { >> chomp; >> ($key, $val) = split /:\s+/; >> $data{$key} = $val; >> } >> >> close FILE; >> } >> >> # and splat it out again >> # >> open FILE, "> file3.dat"; >> printf FILE "%s: %s\n", $_, $data{$_} >> for (sort keys %data); >> close FILE; >> >> I'm not sure about your 'some text'. If you're allowing comment lines >> starting with a hash then >> >> next if /^#/; >> >> at the start of the inner loop will do. Now if you want the comments >> retaining, that's another matter :)) >> >> I never like posting just a solution on the beginners' group, but I don't >> think I'm doing anything obscure here that needs explaining. Tell me if >> I'm wrong. >> >> HTH. >> >> Cheers, >> >> Rob >> >> ----- Original Message ----- >> From: "folschette" <[EMAIL PROTECTED]> >> To: <[EMAIL PROTECTED]> >> Sent: Tuesday, October 15, 2002 10:56 AM >> Subject: file to file copy >> >> >>> hello, >>> i have to write a perl script which copies text from one file to another >> but >>> only if the text is not exisiting yet. >>> For example: >>> in file1: >>> word: moon >>> word2: sky >>> ... >>> the same syntax for every line >>> >>> in file2: >>> #some text >>> word: honey >>> word3: lol >>> word4: mu >>> ... >>> as well the same syntax for every line >>> >>> so now i want to merge file1 into file2, so that word: honey will be >>> replaced by word: moon and word2: sky will be appended to file2. >>> i have written the following script but i've got little problem with it, >> can >>> someone help me? or test it? >>> >>> thanx, christophe folschette >> >> >> > ---------------------------------------------------------------------------- >> ---- >> >> >>> -- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]