回答編集履歴

3

Update

2022/07/06 23:52

投稿

melian
melian

スコア19825

test CHANGED
@@ -18,7 +18,8 @@
18
18
 
19
19
  while(my $line = <$TEXT>) {
20
20
  $line = (split(/ /, $line))[1];
21
- $line =~ /$_/ and do { $count{$_} += 1; last; } for @w;
21
+ $line =~ /$_/ and $count{$_} += 1 and last for @w;
22
+
22
23
  }
23
24
 
24
25
  say "$_ $count{$_}" for @w;

2

Update

2022/07/06 15:25

投稿

melian
melian

スコア19825

test CHANGED
@@ -21,5 +21,5 @@
21
21
  $line =~ /$_/ and do { $count{$_} += 1; last; } for @w;
22
22
  }
23
23
 
24
- say "$_ $count{$_}" for (keys %count);
24
+ say "$_ $count{$_}" for @w;
25
25
  ```

1

Update

2022/07/06 15:17

投稿

melian
melian

スコア19825

test CHANGED
@@ -10,11 +10,15 @@
10
10
  open my $SEARCH, '<', $search or die "$!";
11
11
  my @w = <$SEARCH>;
12
12
  chomp @w;
13
+ @w = sort { length $b <=> length $a } @w;
13
14
 
14
15
  open my $TEXT, '<', $text or die "$!";
15
16
  my %count;
17
+ $count{$_} = 0 for @w;
18
+
16
19
  while(my $line = <$TEXT>) {
17
- $count{$_} += (split(/ /, $line))[1] =~ /$_/ for @w;
20
+ $line = (split(/ /, $line))[1];
21
+ $line =~ /$_/ and do { $count{$_} += 1; last; } for @w;
18
22
  }
19
23
 
20
24
  say "$_ $count{$_}" for (keys %count);