在我写的最后一个脚本中,我需要一个类似于switch语句行为的行为。只需在Perl中搜索等效词,就可以找到use Switch
。一开始,一切都很好并且正常工作,直到所有内容都崩溃了并且描述性错误(它发生在具有正则表达式的情况的switch语句中,但奇怪的是它并没有发生在其他类似的switch语句中)。
编辑:崩溃的代码看起来像这样:
switch ($var) {
case /pattern1/ {...}
case /pattern2/ {...}
...
else {...}
}
这导致我放弃使用Switch.pm
并寻找替代方案。
我找到了given
和for-when
,当然总是直截了当且有些幼稚if-elsif-else
。
Switch.pm
如此不稳定?given
和for-when
具有相似的结构,但我猜有差异(因为两者都存在)。它是什么?if-elsif-else
明显慢于其他选项吗?