Perl:如果文件中不存在特定行,则退出

Anu*_*a G 3 perl file-io

在对文件执行某些操作之前,我需要扫描文件以查看它是否包含一个特定的行.如果该行不存在于文件中的任何位置,则退出(并且不对该文件执行任何进一步的操作).

在Perl中执行此操作的最有效方法是什么?

Sob*_*que 6

阅读文件的东西是 - 昂贵的部分始终是读取数据的过程.

所以 - 读取你的文件,如果你碰到匹配的一行则中断,如果你在循环之外做了测试;

my $found; 
while ( <$filehandle> ) {
    if ( m/Some Text to match here/ ) { 
        $found++;
        last;
    }
}

die "Line not present" unless $found;
Run Code Online (Sandbox Code Playgroud)