2

$! の sub からエラー テキストを返す必要があります。でもシンプル

 $! = "Error: Something is wrong!";

$! は変更されません。どうすればいいですか?

4

2 に答える 2

5

$!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

于 2013-05-11T03:58:55.490 に答える
3

2 つのオプション。

まず、Errno::AnyString

第二に、それをしないでください。 $!は特別で、errnoを示す必要があります。$YourModule::Error特別なエラーを伝える必要がある場合は、(または何でも)を使用します。

于 2013-05-11T03:48:45.800 に答える