質問編集履歴
4
みなさんに教えていただいたことを元にかきかえてみました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
|
+
(助言を受け編集しました)
|
3
4
|
|
4
|
-
|
5
|
-
perlの超初心者です。初歩的な質問ですみません。読み込んだ文書を
|
5
|
+
perlの超初心者です。初歩的な質問ですみません。読み込んだ文書をsortして、新しい文書に書き込みたいです。
|
6
6
|
|
7
7
|
具体的に:
|
8
8
|
|
@@ -10,11 +10,13 @@
|
|
10
10
|
|
11
11
|
"a am go I I school. student. to" みたいな感じにしたいです。
|
12
12
|
|
13
|
+
しかし、現在は
|
14
|
+
|
15
|
+
"a am I student. go I school to." みたいになってます。どうすれば段落ごとではなく全文書を並べ替えられますか?
|
16
|
+
|
17
|
+
|
18
|
+
|
13
19
|
自分がやってみたのは以下の通りです。
|
14
|
-
|
15
|
-
テキストの読み込み → 文章を単語ごとにsplit → アルファベット順に並べ替え → 新しいファイルに書き込む
|
16
|
-
|
17
|
-
という風にやってみたのですが、エラーが出てできません。どう書けば良いか教えていただけますか?よろしくお願いします。
|
18
20
|
|
19
21
|
|
20
22
|
|
@@ -24,31 +26,23 @@
|
|
24
26
|
|
25
27
|
```
|
26
28
|
|
27
|
-
open(TEXT, "<
|
29
|
+
open(TEXT, "< 元の文書");
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
$new = "保存する場所";
|
34
|
+
|
35
|
+
open(NEW, "> $new");
|
28
36
|
|
29
37
|
|
30
38
|
|
31
39
|
foreach $line(<TEXT>){
|
32
40
|
|
33
|
-
|
41
|
+
@line = split(/ /,$line);
|
34
42
|
|
35
|
-
|
43
|
+
@line = sort(@line);
|
36
44
|
|
37
|
-
|
45
|
+
print NEW "@line";
|
38
|
-
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
$new = "新しいファイル名と場所.txt";
|
44
|
-
|
45
|
-
open(NEW, "> $new");
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
foreach $word(@line){
|
50
|
-
|
51
|
-
print NEW "$word\n";
|
52
46
|
|
53
47
|
}
|
54
48
|
|
@@ -78,11 +72,9 @@
|
|
78
72
|
|
79
73
|
|
80
74
|
|
81
|
-
|
75
|
+
保存する場所では段落ごと?行ごと?に並べ替えられています。
|
82
76
|
|
83
77
|
|
84
|
-
|
85
|
-
print() on closed filehandle NEW at /ファイル名.pl line 15, <TEXT> line 6.
|
86
78
|
|
87
79
|
|
88
80
|
|
3
書式の改善。
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,11 +30,11 @@
|
|
30
30
|
|
31
31
|
foreach $line(<TEXT>){
|
32
32
|
|
33
|
-
@line = split(/ /,$line);
|
33
|
+
@line = split(/ /,$line);
|
34
34
|
|
35
|
-
@line = sort(@line);
|
35
|
+
@line = sort(@line);
|
36
36
|
|
37
|
-
print "@line";
|
37
|
+
print "@line";
|
38
38
|
|
39
39
|
}
|
40
40
|
|
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
foreach $word(@line){
|
50
50
|
|
51
|
-
print NEW "$word\n";
|
51
|
+
print NEW "$word\n";
|
52
52
|
|
53
53
|
}
|
54
54
|
|
2
編集しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
perlの超初心者です。初歩的な質問ですみません。読み込んだ文書を単語単位でアルファベット順に並べ替え、新しい文書に書き込みたいです。
|
6
|
+
|
7
|
+
具体的に:
|
8
|
+
|
9
|
+
"I am a student. I go to school."を
|
10
|
+
|
11
|
+
"a am go I I school. student. to" みたいな感じにしたいです。
|
6
12
|
|
7
13
|
自分がやってみたのは以下の通りです。
|
8
14
|
|
@@ -24,11 +30,9 @@
|
|
24
30
|
|
25
31
|
foreach $line(<TEXT>){
|
26
32
|
|
27
|
-
|
33
|
+
@line = split(/ /,$line);
|
28
34
|
|
29
|
-
|
35
|
+
@line = sort(@line);
|
30
|
-
|
31
|
-
|
32
36
|
|
33
37
|
print "@line";
|
34
38
|
|
@@ -46,7 +50,7 @@
|
|
46
50
|
|
47
51
|
print NEW "$word\n";
|
48
52
|
|
49
|
-
|
53
|
+
}
|
50
54
|
|
51
55
|
|
52
56
|
|
1
教えていただいたミスを直してみました。@lineのところに問題があるようですが、具体的にどう直すべきか教えていただけますでしょうか。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
perlの超初心者です。初歩的な質問ですみません。
|
5
|
+
perlの超初心者です。初歩的な質問ですみません。読み込んだ文書を単語単位でアルファベット順に並べ替え、新しい文書に書き込みたいです。
|
6
|
+
|
7
|
+
自分がやってみたのは以下の通りです。
|
6
8
|
|
7
9
|
テキストの読み込み → 文章を単語ごとにsplit → アルファベット順に並べ替え → 新しいファイルに書き込む
|
8
10
|
|
9
|
-
という
|
11
|
+
という風にやってみたのですが、エラーが出てできません。どう書けば良いか教えていただけますか?よろしくお願いします。
|
10
12
|
|
11
13
|
|
12
14
|
|
@@ -22,9 +24,11 @@
|
|
22
24
|
|
23
25
|
foreach $line(<TEXT>){
|
24
26
|
|
25
|
-
@line = split(/ /,$line);
|
27
|
+
@line = split(/ /,$line);
|
26
28
|
|
27
|
-
@line = sort(@line);
|
29
|
+
@line = sort(@line);
|
30
|
+
|
31
|
+
|
28
32
|
|
29
33
|
print "@line";
|
30
34
|
|
@@ -32,7 +36,7 @@
|
|
32
36
|
|
33
37
|
|
34
38
|
|
35
|
-
$new = "
|
39
|
+
$new = "新しいファイル名と場所.txt";
|
36
40
|
|
37
41
|
open(NEW, "> $new");
|
38
42
|
|