#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my $data1 = "master.txt"; my ( $number, %accounts ); open (F1, $data1) or die "\"$data1\" not existed or can't be opened!\n"; my $data2 = "child.txt"; my ( $child_number, %children ); open (F2, $data2) or die "\"$data2\" not existed or can't be opened!\n"; my ($master,%result); my $result; while ( ) { chomp; ($number, my @fields ) = split /(\d\d\d\d)/, $_, -1; @{ $accounts{ $number } }{ qw/ number name / } = @fields; } while ( ) { chomp; ($child_number, my @fields ) = split /(\d\d\d\d)/, $_, -1; @{ $children{ $child_number } }{ qw/ child_number info / } = @fields; #print Dumper $children{ $child_number } ; if ($accounts{ $number }{'number'} == $children{ $child_number }{'child_number'}){ print $accounts{ $number }{'name'}, "\n"; foreach $child_number (%children){ print $children{ $child_number }{'info'}, "\n"; } } }