読者です 読者をやめる 読者になる 読者になる

Engineer of the lawyer

I was able to pass the Network Specialist. Next target is the Project Manager.

Perl foreach箇所を修正

program

これまでは、以下のように処理することによって、foreachで配列の中身を
1行ずつ読み込んでいきIF文でマッチした文字列を$valueに格納していた。

foreach (@lines) {

# 該当の文字列が一致する箇所をif文でマッチさせる
        if(/X部分一致させたい文字列X/){
                $value = "$_";
                };
        };

しかし、今回は配列の中で一致するパターンは必ず一箇所なのでIF文に
マッチした後、ループ処理を繰り返している意味がないので、IF文に
マッチしたらforeachを抜けて次の処理に遷移したほうがスマート
だと考え、以下のようにlastを使えば途中で処理を抜けられることが
わかったので以下のように追記した。

foreach (@lines) {

# 該当の文字列が一致する箇所をif文でマッチさせる
        if(/X部分一致させたい文字列X/){
                $value = "$_";
                last;
                };
        };


こうやって地道に修正しながらプログラムを覚えていこう。


【参考】 
last演算子 - 繰り返し処理 - Perl入門