1

私はこのファイルを持っています:

1. heavenns 2 heavenns 3 heavenns good 4 heavenns 5heavennly bye

この行から、一度だけ印刷する必要があります'heavenns''heavennly'

このコードは、他のスレッドで尋ねた他の質問です。私はそこで私の質問を受け入れたので、今では誰もそれを見ることはありませんよね?(私はここに来たばかりで、それがどのように機能するかわかりませんか?)

#!/usr/bin/env perl
use strict;
use warnings;

my $regex = "heavenn+";
my $rx = qr/$regex/;
print "Regex: $regex\n";

my $file  = "myfilename.txt";
my %list;
my @myarr;
open my $fh, "<", $file or die "Failed to open $file: $?";

while ( my $line = <$fh> ) {
    if ($line =~ $rx)
    {
        print $line;
        $list{$line}++;
    }
 }

 push @myarr, sort keys %list;

 print "Mylist: @myarr\n"; #NOT GIVING ME UNIQUE VALUES & NOW I ONLY WANT heavenns and heavennly
4

4 に答える 4

1
perl -0777 -nE'@w{m/(heavenn\w+)/g}=();say for keys %w'
于 2013-07-22T07:36:16.680 に答える
0

ハッシュを適切に使用していません。

  1. ハッシュ内の単語の存在を確認します。
  2. 存在しない場合は、入力してください。その場合は、スキップしてください。
  3. ループの後、ハッシュの内容を出力します。配列を使用する必要はありません。
于 2013-07-22T04:44:33.507 に答える