41378


あるファイル（仮にsample.txt）の一行目には三つの数字があります。数字と数字の間に半角スペースが入ってます。三つの数字を正規表現で取り出し、それぞれ変数A、B、Cに格納する方法はありますか

[code]

    20 31 7
    abcdefg
    あいうえお
    ...
    
[/code]

  
自分はこのように考えています。うまくいかなかったです。

[code]

    print"ファイル名を指定してください！";
      chomp(my $file = <STDIN>);
      open (IN, $file) or die;
    
      my $para = qr/(\d+)\s(\d+)\s(\d+)/x;
    
      if (<IN>=~ /$para/) {
         my $A = $1;
         my $B = $2;
         my $C = $3;
      }
    
[/code]


CC BY-SA 3.0
2018-02-01T06:31:36.803
41376
2018-02-01T06:59:31.050
2018-02-01T06:54:16.917
20329
20329
question
perl
perlでファイルの指定文字列を取り出し、変数へ格納


質問の通り「正規表現」を使うなら以下のように自分なら書きますが、今回の場合なら「半角スペース区切り」でsplitする方法もあります。

[code]

    #!/usr/bin/perl
    
    my $file = "sample.txt";
    
    open(FH,"<$file") or die;
    my $line = <FH>;
    chomp($line);
    
    ## 正規表現を使用して取り出す
     my ($A,$B,$C) = $line =~ /(\d+) (\d+) (\d+)/;
    ##
    ## or
    ##   "半角スペース"区切りでsplitを使う
    #my ($A,$B,$C) = split(/ /,$line);
    
    print "A: $A\n";
    print "B: $B\n";
    print "C: $C\n";
    
[/code]


CC BY-SA 3.0
2018-02-01T06:59:31.050
41378
2018-02-01T06:59:31.050
3060
41376
answer