如何将$ ^ E与数字进行比较?

时间:2014-07-15 11:55:21

标签: perl error-handling

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上。

1 个答案:

答案 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