我需要从 $! 中的 sub 返回错误文本。但是很简单
$! = "Error: Something is wrong!";
不起作用,它不会改变 $!。我该怎么做?
$!
是 C 库 var errno
(一个数字)和它所代表的错误消息的反映(使用strerror
或类似获得)。
您无法更改字符串,因为这是生成的值,但您可以更改数字。
$ perl -E'say $!=$_ for 1..10'
Operation not permitted
No such file or directory
No such process
Interrupted system call
Input/output error
No such device or address
Argument list too long
Exec format error
Bad file descriptor
No child processes
您的代码没有尝试设置errno
,因此它应该使用自己的变量而不是弄乱$!
(或使用 引发异常die
)。