2

快速提问...
为什么第一个键有效,而其余的无效?也就是说,第二个键会引发语法错误。我以前用数字作为键,但是一旦我写了' to',脚本就会变黑(也就是说,不是通常用于键的注释颜色)。如果我拿走 ' to' 它会起作用并在下一个键上引发错误。

我不能有以数字开头的数字和字母组合吗?

my %ranges = (
    under10 => "x < 10000",
    10to20  => "10000 <= x < 20000",
    20to30  => "20000 <= x < 30000",
    30to40  => "30000 <= x < 40000",
    40to50  => "40000 <= x < 50000",
    50to60  => "50000 <= x < 60000",
    60to70  => "60000 <= x < 70000",
    70to80  => "70000 <= x < 80000",
    80to90  => "80000 <= x < 90000",
    90to100 => "90000 <= x < 100000",
    100plus => "100000 <= x",
);
4

2 回答 2

12

将它们放在引号中。文档说:

=> 运算符主要只是一个在视觉上更独特的逗号同义词,但如果它是一个合法的简单标识符的裸字,它也会安排其左侧操作数被解释为字符串。

标识符必须以字母或下划线开头,因此10to30不是合法标识符。结果,它不会被转换为字符串。

于 2013-04-16T12:44:03.017 回答
1

你需要引用它们:)

my %ranges = (
    'under10' => "x < 10000",
    '10to20'  => "10000 <= x < 20000",
    '20to30'  => "20000 <= x < 30000",
    '30to40'  => "30000 <= x < 40000",
    '40to50'  => "40000 <= x < 50000",
    '50to60'  => "50000 <= x < 60000",
    '60to70'  => "60000 <= x < 70000",
    '70to80'  => "70000 <= x < 80000",
    '80to90'  => "80000 <= x < 90000",
    '90to100' => "90000 <= x < 100000",
    '100plus' => "100000 <= x",
);
于 2013-04-16T12:42:21.587 回答