元组模式
元组模式只与元组合一匹配。它形式上是在圆括号中,成员由逗号隔开的模式列表:
(1, $x, "buckle my shoe")
你可把元组的最后那个变量,用星号(*)修饰成“其余模式”:
($a, fie, $b, *$c)
这个“其余模式”的变量,总是约束为元组。
例如:
- (1, $x, "buckle my shoe") 与 (1, 2, "buckle my shoe") 合一匹配,$x 约束值等于 2。
- (1, $x, "buckle my shoe") 与 (1, 2, "buckle my belt") 不相匹配,原因是两个元组的第三个模式值不相同。
- ($a, fie, $b, *$c) 与 (fee, fie, foe, fum) 合一匹配,$a 约束为 fee,$b 约束成 foe,$c 约束为元组 (fum)。
- ($a, fie, $b, *$c) 与 (fee, fie, foe) 合一匹配,$a 约束成 fee, $b 约束成 foe,$c 约束成空的元组 ()。
- ($a, fie, $b, *$c) 与 (fee, fie) 不相匹配,原因是第二个元组必须至少有三个成员。
提 示
可以用 (*$foo) 专门匹配元组,$foo 会约束成整个元组。但若与其他类型数据匹配,会失败。