0

私はラインを持っています

CHANNEL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN)
id=3

私がやりたいのは、ファイルを検索して最初の行を見つけた後、IDを取得することです。

open(CHECKFILE8, "$file");
while (<CHECKFILE8>) {             #while loop to loop through each line in the file
    chomp;                         #take out each line by line
    $datavalue = $_;               #store into var , $datavalue.
    $datavalue =~ s/^\s+//;        #Remove multiple spaces and change to 1 space from the front
    $datavalue =~ s/\s+$//;        #Remove multiple spaces and change to 1 space from the back
    $datavalue =~ s/[ \t]+/ /g;    #remove multiple "tabs" and replace with 1 space
    if ($datavalue eq "CHANNEL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN)") {
        # HOW TO READ THE NEXT LINE?
    }
}
4

1 に答える 1

1

他のすべての行を読んでいるのと同じ方法で、式を使用し<CHECKFILE8>ます。例えば:

my $nextline = <CHECKFILE8>;

ただし、ベアワード識別子を介してファイルハンドルを開くことは、やや古風なPerlであることに注意する必要があります。Perlにレキシカルスコープの変数でファイルハンドルを作成させる方が、一般的に安全で慣用的です。

open my $checkfile8, '<', $file or die "Can't open $file: $!";
while (<$checkfile8>) { ... }

使ってるよuse strictね?

于 2011-01-17T07:50:17.463 に答える