1

変数が定義されているかどうかを確認し、perl 正規表現を使用して配列内の 2 つのパターンを検索する方法は?

$/ = ""; # paragraph mode

__Data__
#SCSI_test         # put this line into  @arrayNewLines      
kdkdkdkdkdkdkdkd
dkdkdkdkdkdkdkdkd
- ccccccccccccccc  # put this line into @arrayNewLines


  while(<FILEREAD>)
  {
      chomp;
      my @arrayOld = split('\n',$_);

      foreach my $i (0 .. $#arrayOld) # using the foreach of index to remove the lines.
      {
            if($arrayOld[$i] =~ /-(.*)/ || /\#(.*)/)
            {
                 my @arrayNewLines = $arrayOld[$i];
                 splice @arrayOld,$i,1;             # remove lines from arrayOld
                 print "@arrayNewLines\n";
            }
                 print "@arrayOld\n";
      }
   }

このコードは、各タイプの - または # 行を同じ @arrayNewLines 配列に配置するという点では機能しません。最初の (/-(. )/) パターンでのみ機能し、2 番目の (/#(. )/) パターンでは機能しません。両方のパターンを検索する必要があり、未初期化メッセージの使用を防ぐために $arrayOld[i] 変数を定義しました。定義したい

4

1 に答える 1

0
if($arrayOld[$i] =~ /-(.*)/ || /\#(.*)/)

これも機能しないのと同じ理由で、これはあなたが思っているようには機能しません。

if($x == 1 || 2)

代わりにこれを使用してください:

if($arrayOld[$i] =~ /-(.*)/ || $arrayOld[$i] =~ /\#(.*)/)

これを使用するのと同じように:

if($x == 1 || $x == 2)
于 2012-05-25T23:54:11.780 に答える