in reply to hash jerkin
Here are the test filesuse Tie::File; use strict; my (@A, @B, @C); my ($field1, $A, $B); tie @B, 'Tie::File', 'txtA.txt' or die "couldn't TiE $!\n"; tie @A, 'Tie::File', 'txtB.txt' or die "couldn't TiE $!\n"; foreach $A (@A) { my ($field1) = split/:/, $A; print $field1; foreach $B (@B){ if($B=~/^$field1/){ #found match push it onto C push @C, $A;} } } ## We remove those that didn't match by replacing @A with @C :) @A = @C; print @A;
txtB.txtfilea:file2:file1 file2:something:old
Cheers, James Edit:removed a labelfileB:file2:file3 filea:file2:file1 file2:filex:file23 file34:file2:file3 filea:file2:file1 file2:filex:file23
|
|---|