IPアドレスをperlを使ってファイルを使ってホスト名に変換しようとしています(ソケット機能は組み込まれていません)。 私のファイルには、次のようになります。IPアドレスをperlのファイルからホスト名に変換する
192.168.1.1 firewall
192.168.2.4 wifi
192.168.3.10 switch
マイコード:
use strict;
use warnings;
my $input_dns_file='./file';
our %ip2host_hash;
sub read_dns_file()
{
open(DNS_FILE,'<',$input_dns_file) or die;
while (my $line=<DNS_FILE>){
my ($ip,$hostname) = split(/\s+/,$line,2);
$ip2host_hash{$ip} = $hostname;
}
問題は、ハッシュは、常にファイルの最初の行を返すということです。 %ip2host
のハッシュをどのように埋めることで、IPアドレスを入力するときにすべてのホスト名を返すことができますか?
ハッシュにはあなたの言うことが含まれていますか? (その内容を見るには、 'Data :: Dumper'と' Print Dumper(\%your_hash) 'を使ってください)。 – Mat
複数のホスト名を1つのIPでサポートしたいのですか? – kupson
あなたの質問を得ることができませんでした、ごめんなさい:「ハッシュはいつも戻ってくる」ということはどういう意味ですか?あなたのコードはうまくいくようです:ファイルを行単位で調べて、マップを埋めていきます。 – raina77ow