给出/何时给出Perl弃用的推荐替代品是什么?

时间:2013-10-07 23:37:52

标签: perl switch-statement

既然Perl开发人员决定对给定/何时语句进行排序,是否有推荐的替代品,除了回到if / elsif / else之外?

2 个答案:

答案 0 :(得分:7)

大多数情况下,

if / elsif / else个链是最佳选择 - 除非完全不同的内容优于两者 {{1} } / if / elsif else / given,这实际上是经常合理的。 “完全不同”的方法的示例是创建不同类型的对象来处理不同的场景,让方法调度为您完成工作,或者找到使代码更加数据驱动的机会。如果它们合适且你做得对,那么这两者都可以大大减少代码中“switch语句”结构的数量。

答案 1 :(得分:0)

作为补充,我发现如果你有一些需要快速更新的给定/何时/默认代码,'for'和if / elsif / else的组合是好的。只需将given替换为for,并将when语句替换为级联if& elsif,并将default替换为else。这允许所有测试都隐式使用$_,需要较少的重写。 (但请注意,其他特殊的智能匹配功能将不再起作用。)

这只是用于重写已经使用给定/何时的代码。为了编写新代码,@ hobbs有正确的答案。