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]