teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ソースコードの変更、エラー部分の修正

2016/11/22 06:26

投稿

moana_39
moana_39

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  perl初心者で、現在勉強中です。perlを利用して、以下のようなことをしたいと考えています。
2
2
 
3
+ ```ここに言語を入力
3
4
  test.log
4
5
  ===============================
5
6
  test 65
@@ -9,6 +10,7 @@
9
10
  main 2
10
11
  sub 78
11
12
  ===============================
13
+ ```
12
14
 
13
15
  上記ファイルを読み込んで、aaaaaからmainまでの行を抜き出し、かつその隣の数字だけを表示したいと思っています。
14
16
 
@@ -18,20 +20,25 @@
18
20
  0
19
21
  2
20
22
 
21
- aaaaaからmainまでを指定して抽出することはできました。以下の、特定行を抜き出すコードと、数字のみを抜き出すコードを利用すると思うのですが、処理の方法が分かりません。
23
+ aaaaaからmainまでを指定して抽出することはできました。以下の、特定行を抜き出すコードと、数字のみを抜き出すコードを利用すると思うのですが、、、
24
+ 実行すると空欄になってしまい、目的の結果を得ることができません。
25
+ if文の構成が間違っていると思うのですが、もし分かる方がいらっしゃいましたら、教えて頂けますでしょうか。
22
26
 
23
- もしご存じの方がいらっしゃいましたら、教えていただけますでしょうか。
24
- よろしくお願い致します。
25
27
 
26
-
27
28
  (特定行を抜き出すソースコード)
29
+ ```ここに言語を入力
28
30
  open FH, "test.log" or die $!;
29
31
 
30
32
  $flag = 0;
31
33
  while ($data = <FH>) {
32
34
  chomp $data;
35
+ $data =~ s/[^0-9]//g;
36
+
33
37
  if ($data eq "aaaaa" ) { $flag = 1 }
34
38
  elsif ($data eq "main") { $flag = 0 }
35
39
  elsif ($flag) { print "$data\n" }
36
40
  }
41
+
42
+
37
- close FH;
43
+ close FH;
44
+ ```