sub Diff { my @a; my $dif = undef(); for my $fdx (0..1) { open my $fh, $_[$fdx] or die "$!: $_[$fdx]\n"; my @tmp = <$fh>; $a[0] = \@tmp; close $fh; } while ( $a[0] -> [0] and $a[1] -> [0] ) { if ( $a[0] -> [0] eq $a[1] -> [0] ) { shift @$a[0]; shift @$a[1]; } elsif ( $a[0] -> [0] ) { $dif .= '< ' . shift( @$a[0] ); } else { $dif .= '> ' . shift( @$a[1] ); } } return $dif; }