tie(my %cal, etc) or die "cal: $!\n"; tie(my %addr, etc) or die "addr: $!\n"; $cal{"cal_$key"} = $cal_value; $addr{"addr_$key"} = $addr_value; # later for ( sort { $a <=> $b || $a cmp $b } keys %cal, keys %addr) ) { if (m/^cal/) { # its from the calendar } elseif ( m/^addr_/ ) { # from the address book } else { # where did this come from? } }