#!/bin/perl -w use strict; use Data::Dumper; our %hash_all = (); sub readHash{ my @vars = @_; my $filename = $vars[0]; my %iptable = (); if(open(IN,$filename.".txt")) { while() { my @tmp = split(/\t/); $iptable{$tmp[0]} = $tmp[1]; } } return %iptable; } sub loadAll{ my %ipaddress = readHash("ipadress"); my %school = readHash("school"); my %city = readHash("cities"); $hash_all{ip}=\%ipaddress; $hash_all{school} = \%school; $hash_all{city} = \%city; print Dumper(\%hash_all); } sub queryValue{ my @pars = @_; my $key1 = $pars[0]; my $key2 = $pars[1]; chomp($key1); chomp($key2); print Dumper(\%hash_all); my %temp2 = %{$hash_all{$key1}}; my $key; foreach $key (keys %temp2) { if($key =~ m/$key2/){ print $hash_all{$key1}{$key}; } } } loadAll(); my $par1 = <>; my $par2 = <>; queryValue($par1,$par2);