1
#!/usr/bin/perl

use strict "vars";
use warnings;
use feature qw(switch);

use locale;
use POSIX qw(locale_h);
setlocale(LC_ALL, "cs_CZ.UTF-8");

use constant (
    ERROR_OK => 0,
    ERROR_CMD => 1,
    ERROR_INPUT => 2,
    ERROR_OUTPUT => 3,
    ERROR_INPUT_FORMAT => 4
);

exit ERROR_OUTPUT;

「Argument "ERROR_OUTPUT" is not numeric in exit at ...」というエラーが引き続き表示されます。数字を直接使用する代わりに、終了値に定数を使用するにはどうすればよいですか?

4

2 に答える 2

12

後の括弧use constantをカーリーに変更します。

use constant {
    ERROR_OK => 0,
    # etc.
};
于 2013-02-20T15:03:00.313 に答える
4

use constantディレクティブでは、括弧ではなく{中括弧を使用する必要があります。}()

use constant {
    ERROR_OK => 0,
    ERROR_CMD => 1,
    ERROR_INPUT => 2,
    ERROR_OUTPUT => 3,
    ERROR_INPUT_FORMAT => 4
};
于 2013-02-20T15:04:56.833 に答える