我有一個任務來編寫一個Perl文件來打開一個IP地址及其主機名的文本文件,並用一個新行分隔,並將其加載到一個散列中。然後,我應該要求用戶輸入用戶想要在文件中搜索的內容。如果找到結果,程序應打印該值和鍵,並再次要求輸入,直到用戶不輸入任何內容。我甚至沒有接近尾聲,但需要一點指導。我已經將來自這裏的一些代碼和通過使用一些Google-Fu綁定在一起。打開一個文本文件作爲散列並在該散列內搜索
這是我的工作正在進行中:
#!/usr/bin/perl
print "Welcome to the text searcher! Please enter a filename: ";
$filename = <>;
my %texthash =();
open DNSTEXT, "$filename"
or die! "Insert a valid name! ";
while (<DNSTEXT>) {
chomp;
my ($key, $value) = split("\n");
$texthash{$key} .= exists $texthash{$key}
? ",$value"
: $value;
}
print $texthash{$weather.com}
#print "What would you like to search for within this file? "
#$query = <>
#if(exists $text{$query}) {
由於可能是有目共睹的,我完全迷失了方向。我不知道我是否正確地將文件插入散列,或者如何打印一個值以進行調試。
'while(){'只讀一行。所以你不能把它分成'\ n'。你需要保存第一行再讀一行,然後把它們放在一起。 –
要打印參考,請使用'Data :: Dumper',例如'使用Data :: Dumper;打印Dumper(\%hash);' –