如何检查该文件是否成功打开两行

era*_*ran 2 perl

对不起,但我找不到答案.

如果我有以下行

my $FH;
open FH,"somefile";
Run Code Online (Sandbox Code Playgroud)

现在我想检查FH是否已成功打开,但我想在不同的行中执行此操作,而不是使用或语法.

我试过($ FH),但它对我不起作用.

谢谢.

vst*_*stm 7

来自 - open手动:

Open在成功时返回非零值,否则返回未定义的值.如果open涉及管道,则返回值恰好是子进程的pid.

所以你可以这样做:

my $FH;
my $file_opened = open $FH, '<', 'somefile';

if($file_opened) {
    print "open";
    close($FH);
}
Run Code Online (Sandbox Code Playgroud)

或者在一行中没有附加变量:

if(open $FH, '<', 'somefile') {
    print "--open";
    close($FH);
}
Run Code Online (Sandbox Code Playgroud)