如何在 perl 5.24 中关闭“何时是实验性的...”?

2023-11-27

下面的代码直接从 perldoc.perl.org 上的当前 perlsyn 页面复制。 [我已经根据需要添加了初始化和声明以使其运行(并且它按预期工作),但重点是“when”关键字]

Perl 5.24 抱怨“何时”是实验性的。 很公平,但我不想每次使用关键字时都看到这个。

没有警告 qw(experimental::when) 不起作用 - “未知警告类别...”

我也尝试过“switch”作为类别

是否有其他方法可以抑制此警告(除了一般禁用警告之外)?

use v5.14;
for ($var) {
    $abc = 1 when /^abc/;
    $def = 1 when /^def/;
    $xyz = 1 when /^xyz/;
    default { $nothing = 1 }
}

您可以通过以下方式启用此构造而不发出警告

use experimental 'switch';

或者仅仅通过以下方式禁用“实验”警告类别

no warnings 'experimental::smartmatch';

(参见可用警告类别的完整列表perldoc warnings).

但请注意 smartmatch,given, and when结构被认为从根本上被破坏,并且正在被删除/重新设计。当您在其他 Perl 版本上运行代码时,仅消除警告就会破坏您的代码。

相反,请更愿意明确地拼写出此代码:

for ($var) {
    if    (/^abc/) { $abc = 1 }
    elsif (/^def/) { $def = 1 }
    elsif (/^xyz/) { $xyz = 1 }
    else { $nothing = 1 }
}

是的,它更丑陋,但它也适用于所有价值观$var以及所有 Perl5 版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 perl 5.24 中关闭“何时是实验性的...”? 的相关文章

随机推荐

  • 如何在 Cython 中将 C 指针和长度包装在新型缓冲区对象中?

    我正在 Cython 中编写 Python 2 7 扩展模块 如何创建一个实现新型缓冲区接口的 Python 对象 该对象包装由 C 库提供给我的一块内存 内存块只是一串字节 而不是结构或多维数组 我得到了一个const void 指针和长
  • 我可以使用 bootstrap 来设计 HTML 电子邮件模板吗

    我需要设计一个HTML 电子邮件模板通过电子邮件发送给我的客户 我知道对于设计一个 html 电子邮件模板 不应有 css 文件linked 所有样式都应该内联到 html 中 所有图像应该是引用的通过在线服务器 url 不应存储在本地 我
  • 如何按空格分割字符串但在引号内转义空格(在java中)? [复制]

    这个问题在这里已经有答案了 我有一个像这样的字符串 Video or movie parent Media or entertainment 1 1 1 0 0 我想用空格分割它 但引号内的空格应该被忽略 所以分割后的字符串应该是 Vide
  • 使用 CLLocation 计算两个坐标之间的距离

    我在用着CLLocationDistance获取两点之间的距离 但在传递当前位置时出现错误 CLLocation current CLLocation alloc initWithLatitude startLocation coordin
  • uniswap 程序集 create2 功能如何工作?

    我正在查看 uniswap 代码 试图理解代码 其中大部分内容都非常清楚 但我确实有一些问题 在这个函数中 function createPair address tokenA address tokenB external returns
  • 在值构造函数中指定类约束

    有没有办法为值构造函数的参数定义类约束 像这样的东西 data Point2D Num a gt Point a a 那么 Point 可以接受任何参数 只要它们属于 Num 类 您可以使用ExistentialQuantification
  • 删除列表中元组的第一个元素

    我有一个元组列表 如下所示 values 1 hi you 2 bye bye 然而 每个元组的第一个元素不是必需的 期望的输出是 hi you bye bye 我已经做了足够的研究 知道我无法操作元组 但我似乎无法找到如何成功删除列表中每
  • 我如何“取消设置”已声明的类

    我有一个完整的表单创建系统 有许多不同的问题类型 我必须检查该人所做的答案是否正确 所有类型的问题都有自己的类 始终称为 ItemClass 并且该类位于其自己的文件中 每次提出问题时 我都会包含该文件 但存在问题 我必须在一个 PHP 文
  • 如何在字符串的特定位置添加字符?

    我正在使用 Notepad 想要使用正则表达式替换在字符串中的特定位置插入字符 比如说 在每行的位置 6 处插入一个逗号 表达式会是什么 如果您想在第六个字符之后添加一个字符 只需使用搜索 6 和替换 1 示例插入一个 从技术上讲 这会将每
  • Java 调试器无法调用某些默认方法实现

    我正在 IntelliJ IDEA 中编码 调试我的应用程序时 我无法使用某些默认方法实现Watches 这是一个浓缩示例 public class Friendship interface Friend default void sayH
  • 如何在 iOS 7 上让 NSTimer 在后台保持活动状态?

    我创建了在后台运行 NSTimer 的应用程序 我使用位置管理器在后台运行 NSTimer 我使用下面的链接在后台运行 NSTimer 如何在 iOS 应用程序中每 n 分钟更新一次后台位置 这种方法在 iOS 6 中工作正常 但在 iOS
  • Activity崩溃生命周期方法-android

    我正在开发一个应用程序 在崩溃的情况下 需要保存崩溃时的一些数据 现在 我将数据保存在 onDestroy 中 如下所示 Override protected void onDestroy saveState super onDestroy
  • Windows Phone 7 中的推送通知问题

    我尝试了以下教程来在 Windows Phone 7 中创建推送通知 http www sgtconker com 2010 03 article windows phone 7 push notifications http www si
  • 如何使用 Inkscape 将 SVG 字符串转换为 jpg

    在花了两天时间尝试使用 ImageMagick 从 SVG 字符串光栅化 jpeg 后 我终于放弃了 虽然我设法使实际转换工作正常 但在渲染图像时 Imagemagick 似乎无法正确转换变换 旋转功能 导致输出与原始 SVG 不同 经过进
  • 将字符串转换为日期时间对象

    我想将此字符串转换为日期时间对象 Wed Oct 20 16 35 44 0000 2010 有没有一种简单的方法可以做到这一点 或者我是否必须编写一个 RE 来解析元素 将 Oct 转换为 10 等等 编辑 strptime 很棒 然而
  • 获取和设置屏幕分辨率

    如何使用 Visual C 收集和更改屏幕分辨率 For 检索屏幕分辨率 您将需要使用System Windows Forms Screen班级 这Screen AllScreens属性可用于访问系统上所有显示的集合 或者您可以使用Scre
  • 获取按下的按键的键值

    我不知道如何获取按下的键的值 我目前有 info price bind keydown function evt alert evt keyCode 但当我按 1 而不是返回 1 时 它返回 49 编辑 我知道键 1 的 Ascii 代码
  • 如何在 Xcode 或 iTunes connect 上获取 Testflight 外部测试器的崩溃日志?

    有什么方法可以知道某人的应用程序出了什么问题 除了这个人之外 其他人的设备都可以使用 该人尝试删除以前的版本并安装新版本 但仍然不起作用 我怀疑我放置在文档文件夹中的文件之一可能仍然存在 但此文件的格式已更改 苹果有一个关于这个名字的技术说
  • 当新的 DLL 复制到 BIN 目录时,ASP.net C# 需要重新启动 IIS

    我们遇到一个问题 每次我们将 dll 复制到 bin 目录时 我们网站上的主域就会停止运行 恢复它的唯一方法是重新启动 WWW Publishing Service 我们运行一个网站 其中包含许多在单个服务器上运行的 IIS 应用程序 其中
  • 如何在 perl 5.24 中关闭“何时是实验性的...”?

    下面的代码直接从 perldoc perl org 上的当前 perlsyn 页面复制 我已经根据需要添加了初始化和声明以使其运行 并且它按预期工作 但重点是 when 关键字 Perl 5 24 抱怨 何时 是实验性的 很公平 但我不想每