在https://stackoverflow.com/a/3220688/180275中,答案表明(在open
之后)$^E
可与 0x20 进行比较,以确定其他进程是否正在使用某个文件:
open ($fh, "<", "the-file");
if ($^E == 0x20) {
...
}
我试过了,但它确实有效。 然而,如果我打印$^E
的值,我会得到一个字符串(The process cannot access the file because it is being used by another process
)。
如何与数字进行比较仍然可能?
这是在Windows上。
答案 0 :(得分:9)
>perl -E"open my $fh, '<', 'nonexistent'; say 0+$^E; say ''.$^E;"
2
The system cannot find the file specified
与$!
类似,$^E
是一个双变量,一个包含两个值的标量。一个是字符串,一个是数字。
>perl -E"say $^E = 0x20;"
The process cannot access the file because it is being used by another process