-1

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}) {

おそらく明白なように、私はかなり迷っています。ファイルをハッシュに正しく挿入しているかどうか、またはデバッグする値を出力する方法さえわかりません。

4

1 に答える 1

-1

ここでの問題は、入力ファイルがどのように見えるかがわからないことです。入力ファイルが何らかの形で次のようになっていると仮定します。

key1,value1
key2,value2
key3,value3

(または他の同様の方法。この場合、キーと値のペアはコンマで区切られています)、これを行うことができます:

my %text_hash;

# the my $line in the while() means that for every line it reads, 
# store it in $line
while( my $line = <DNSTEXT>) {
    chomp $line;

    # depending on what separates the key and value, you could replace the q{,} 
    # with q{<whatever is between the key and value>}
    my ( $key, $value ) = split q{,},$line; 

    $text_hash{$key} = $value;

}

しかし、ええ、ファイルの内容がどのように見えるか教えてください.

于 2012-10-23T16:20:27.743 に答える