> This very green newbie would like to compare two files, let's say File1 > and File2. I > want to put the difference from File2 only, into a new file, File3.
I had a very simliar problem about a week ago, which James answerd here: http://groups.google.com/groups?q=Perl+looping+(a+lot+of) +files&hl=en&lr=&ie=UTF-8&selm=28A16704-4AD3-11D8-9A03-000A95BA45F8% 40grayproductions.net&rnum=1 or try google groups "perl looping through (a lot of) files" The only really difference is that I didnt want to compare one FILE2 to FILE1 but 500. However, be carefull on your filesize: I settled reading one file into mem (as an array) and looping through the other ones using a while (<FILE2>) reading the 500 files line by line. > For example: > > File1.txt > oranges > apples > bananas > > File2.txt > apples > kiwi > bananas > > The result I want for File3 is the new entry in File2, which is kiwi. (I > don't care that oranges was in File1 and not File2.) > > I tried using a nested foreach loop structure, but I can't get that to > work and I have a feeling using nested foreach's is not the way to go. why not? > I'm guessing somehow I should use hashs, but I've never used a hash for > anything and I don't really know how to use a hash. Can someone help ? do you need to associate the contens of the line with a filename ore something? if not, use an array. > Here's my feeble attempt: > > my $file1; > my $file2; > > my @file1 = qw(oranges apples bananas); > my @file2 = qw(apples kiwi bananas); > As Dan showed: FILE2: > foreach $file2 (@file2){ > foreach $file2 (@file2){ you may want foreach my $file1(@file1){ here > #print "$mastervob $tempvob \n"; > if ($file2 eq $file1) { > last; # I would like to go up to the > toplevel "foreach" here, but I don't know how to do it > } # and I'm not sure this would even > work. as Dan said: next FILE2; will do the job. > else{ > print "$file2 \n"; > } > } > } This doesent do what I assume you want: when you place the print in the inner loop. Just look at the link above. Hope thats a start, Wolf -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
