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