Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解require在Perl中的用法_Perl - Fatal编程技术网

了解require在Perl中的用法

了解require在Perl中的用法,perl,Perl,perl中关键字“require”的用途是什么。我已经提到了,但这不是很有帮助 从 require需要由version指定的Perl版本,或requires 如果未提供EXPR,则由EXPR或$\指定的某些语义。 版本可以是数字参数,如5.006,将 与$]或形式为v5.6.1的文字相比 与$^V(又名$PERL\u版本)相比。如果版本为,则引发异常 大于当前Perl解释器的版本。比较 使用use,它可以在编译时执行类似的检查 从这一点来看,不太清楚下面这行代码在安装了更高版本PERL的Linu

perl中关键字“require”的用途是什么。我已经提到了,但这不是很有帮助

require需要由version指定的Perl版本,或requires 如果未提供EXPR,则由EXPR或$\指定的某些语义。 版本可以是数字参数,如5.006,将 与$]或形式为v5.6.1的文字相比 与$^V(又名$PERL\u版本)相比。如果版本为,则引发异常 大于当前Perl解释器的版本。比较 使用use,它可以在编译时执行类似的检查

从这一点来看,不太清楚下面这行代码在安装了更高版本PERL的Linux机器上的PERL脚本中意味着什么(比如5.22):-


是否可以用一个例子来解释,在什么情况下可能需要使用它?

您链接和引用的文档在第一页就解释了这一点,没有滚动。(我的重点)

版本可以是数字参数,如5.006,这将是 与
$]
或v5.6.1格式的文字相比,将 与$^V(又名$PERL\u版本)相比如果版本为,则引发异常 大于当前Perl解释器的版本。比较 使用use,它可以在编译时执行类似的检查

下面一段就是这个例子

所以很清楚它的作用。它要求您的Perl在运行时至少为5.6.1。如果你有5.22,一切都好

CPAN实例 查找使用此功能的案例非常简单,但实际上要找到一些有合理解释的案例需要进行一些搜索1

  • 正在使用
    要求5.012
    要求5.010
    。显然,它需要一些重要的功能

  • 有,但它说它需要Perl 5.004

  • 表示添加了
    require 5.008001
    ,以修复缺少
    utf8::is_utf8()
    的错误

最后一个是不同数字样式的一个很好的例子。它不仅需要一个特定的5.08子版本,还省去了
\uu
,可以在任何地方使用数字,以使它们在Perl中更具可读性

一个更实际的例子,但在CPAN上更难找到,如果您绝对需要使用一个特定的语法功能,该功能只有在最近的Perl中才可用,例如替换操作符
s///
上的
标志,它添加了非破坏性替换,因此返回的是结果,而不是字符串。如果您的代码依赖于此,您可以将
require 5.014
放在顶部,这样它甚至不会尝试在较旧的perl上运行,因为它无论如何都会失败

return $foo->frobnicate(
  id => $params->{id},
  text_without_whitespace => $params->{text} =~ s/\s+//gr,
);


1) 阅读CPAN是有用的。做吧。

您需要更具体地说明您不了解的内容。欢迎使用Stack Overflow!也许先告诉我们你想做什么?听起来您可能会尝试将Perl代码翻译成其他语言。你可以回答你的问题。
要求
-如果没有你的程序应该/不会工作的东西,你可以指定perl版本或一些文件。实际上你的链接非常有用,请回答@simbabque问题。你想做什么?
要求
没有什么用处。通常使用
use
加载模块,这是
require
的编译时版本@simbabque现在问题更清楚了吗?可以用一个例子来解释吗?在什么情况下可能需要使用它?@Phalgun I添加了一些来自CPANThanks的例子来解释!
require v5.6.1;     # run time version check
require 5.6.1;      # ditto
require 5.006_001;  # ditto; preferred for backwards
                      compatibility
return $foo->frobnicate(
  id => $params->{id},
  text_without_whitespace => $params->{text} =~ s/\s+//gr,
);