【问题标题】:What version of Perl introduced try / catch?哪个版本的 Perl 引入了 try/catch?
【发布时间】:2021-09-01 13:56:00
【问题描述】:

我知道 Perl 最近收到了 try / catch。附带的 Perl 版本是什么?

【问题讨论】:

  • @PolarBear 这是自我回答的,仅供参考。完成。我只需要查一下,我正试图在未来拯救人们。 请注意,尽管这与模块无关,Perl 5.34 具有核心 try/catch,但这些链接并不真正相关
  • 它是 perl 的一部分,它只是被标记为实验性的。它随 Perl 5.34 一起提供,并且在标准 coreutils 之外不需要任何模块。
  • @PolarBear 您是否接种了 COVID 疫苗? signatures 已经“实验性”了五年多,并且到处都在使用它们。我不认为这意味着你认为它意味着什么。它基本上只是意味着实施可能会发生变化和删除(而不是死亡)。
  • @PolarBear 同样,您可以说所有软件的任何主要 semvar 版本。在 Perl 5 中,所有特性都可能在 Perl 7(下一个主要版本)中发生变化。虽然这个特性在 Perl 7 中不太可能是稳定的,但它似乎只是简单地说你不像我(和其他人)那样规避风险:“所有实体都在移动,没有什么是静止的。”我对明天的了解已经足够今天到达那里,您可以随意加入我的行列。

标签: perl try-catch perl5.34


【解决方案1】:

大部分被忽略的perlexperiment 页面列出了添加的功能以及(有时)后来退出实验类别的功能。您还可以查看功能何时被移除。

如果您使用 perldoc.perl.org 上的版本,您可能一直在阅读最新版本的稳定文档(可能会在发布后几天关闭),因此您无需依赖本地文档文档。但是,如果它不在您的本地文档中,则您的 Perl 没有它。 :)

同样,feature.pm docs 显示每个功能的名称、实验性警告的名称(在适当时)以及每个功能显示在哪个版本包中。也就是说,当您包含 use v5.x 时,会自动包含哪些功能.

experimental pragma(从 v5.18 开始)以同样的方式有用,也许是对所有内容的更好总结。而不是这两行:

use feature qw(try);
no warnings qw(experimental::try);

你有这一行:

use experimental qw(try);

当您关闭多个功能警告时,这会更方便,因为您不会在每个警告之前输入experimental::

use experimental qw(signatures try);

【讨论】:

  • 请注意,use experimental qw( try ); 不小心被排除在文档之外,但可以正常工作。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    相关资源
    最近更新 更多