回答編集履歴

3

追記

2016/01/06 05:52

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -39,3 +39,15 @@
39
39
 
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ ---
46
+
47
+ 気になったこと
48
+
49
+
50
+
51
+ - `$x`要らないのでは
52
+
53
+ - 文字列の一致比較なら`eq`です。`index($a,$b) > -1`は`$a`に`$b`が含まれているかです。

2

追記にも答える

2016/01/06 05:52

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  my $word = "りんご";
8
8
 
9
- my @dlist = ("りんご","みかん","");
9
+ my @dlist = ("りんご","ん","りんご\n");
10
10
 
11
11
  for (my $k = 0; $k <= 2; $k++){
12
12
 
@@ -32,8 +32,10 @@
32
32
 
33
33
  1,りんご,りんご
34
34
 
35
- 0,りんご,みか
35
+ 1,りんご,
36
36
 
37
- 1,りんご,
37
+ 0,りんご,りんご
38
+
39
+
38
40
 
39
41
  ```

1

質問に答える

2016/01/06 05:47

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -1,20 +1,16 @@
1
- - `$dlist[$k]`ではなく`@dlist[$k]`では?
2
-
3
- - 文字列の一致比較なら`index($a, $b)`ではなく`$a eq $b`では?
4
-
5
- - `$x`要ります?
1
+ これで動きます
6
2
 
7
3
 
8
4
 
9
5
  ```perl
10
6
 
11
- $word = "りんご";
7
+ my $word = "りんご";
12
8
 
13
- @dlist = ("りんご","みかん","");
9
+ my @dlist = ("りんご","みかん","");
14
10
 
15
11
  for (my $k = 0; $k <= 2; $k++){
16
12
 
17
- if(@dlist[$k] eq $word){
13
+ if(index($word,$dlist[$k])>-1){
18
14
 
19
15
  $vec[$k] = 1;
20
16
 
@@ -26,8 +22,18 @@
26
22
 
27
23
  print "$vec[$k],$word,$dlist[$k]\n";
28
24
 
29
-
30
-
31
25
  }
32
26
 
33
27
  ```
28
+
29
+
30
+
31
+ ```
32
+
33
+ 1,りんご,りんご
34
+
35
+ 0,りんご,みかん
36
+
37
+ 1,りんご,
38
+
39
+ ```