问题标签 [perldoc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
230 浏览

eclipse - perl.exe 从任何文件夹运行,而 perldoc.bat 不是。同时它们都位于同一个文件夹中

我将 ActiveState Perl 5.8.8 与 Eclipse/EPIC 一起使用。它工作正常。我也想使用 perldoc。但是 Eclipse 中有消息“文档不可用”。在 Eclipse 中,我的 perl 解释器是“C:\perl\bin\perlexe”。或者,如果我输入 cmd“perldoc”,则会出现一条消息“无法在 PATH 上找到 perldoc”。当然,在系统环境变量中存在 C:\perl\bin 路径。perl.exe 和 perldoc.bat 位于同一个文件夹中,但 perl 有效,而 perldoc 无效。但是我之前是否在 cmd "cd C:\perl\bin" 中进入 perl 文件夹并输入 perldoc,然后 perldoc 运行良好。我再次检查了我的环境变量,但没有发现任何问题——“C:\perl\bin”位于 PATH 变量的最开头,perl.exe 和 perldoc.bat 都位于此文件夹中。

0 投票
4 回答
134 浏览

perl - Perl 在非严格模式下解引用

在 Perl 中,如果我有:

要对数组的一个元素进行操作,比如说第二个,我会写(可能作为更大表达式的一部分):

虽然,出于某种原因,这些也有效:

导致所有在同一个对象中:

输出:

启用这种结构的语法规则是什么?使用这些结构中的每一个,或者混合所有这些结构,设计出可靠的程序代码能走多远?这些表达的互换性如何?(总是在非严格的上下文中说话)。

关于证明我如何进入这个问题的理由,我同意“使用严格”作为一种更好的做法,但我仍然对建立非严格表达式的一些知识感兴趣。

在试图为自己的这种不安找到一些帮助时,我想到了:

  • “不严格”的概念;不要抱怨未声明的变量和怪异的语法。
  • 前缀取消引用具有比子索引 [] 更高的优先级(perldsc §“优先级警告”)。
  • 关于何时使用 @ 而不是 $ 的说明(perldata § "Slices")。
  • Perl 的运算符 (perlop) 中缺少“[]”(数组下标/切片)描述,这让我认为它不是运算符……(但它必须是别的东西。但是,什么?)。

对于我所学到的,这些提示都没有让我更好地理解我的问题。

提前致谢。

0 投票
0 回答
93 浏览

perl - perldoc perllocal 显示已安装的其他模块

我确实更改了 cpan 模块的 install-dir 并将这个目录添加到 PERL5LIB 以便我可以在我的脚本中使用这些模块。

我想要一个我安装的模块的概述,但是当我执行“perldoc perllocal”时,我会列出 LWP::MediaTypes、Encode::Locale、IO::HTML 和 HTTP::Date,尽管我只安装了 HTTP:Request。

我知道由于依赖关系我已经安装了更多模块,但是为什么没有列出 HTTP:Request 并且也没有 LWP::UserAgent 虽然我可以在我的脚本中使用它?

谢谢

0 投票
1 回答
85 浏览

php - PHP Regex 排除注释发现错误抑制

@我正在尝试做一个正则表达式来查看一个预先存在的代码库,该代码库似乎在变量引用和函数调用上都滥用了 php 错误抑制字符 ( )。因此,我想搜索整个代码库以创建所有用法的列表。问题是,大部分代码还包括 perldoc,我不确定如何排除明显的注释。

大多数 perldoc 似乎都以最少的 whitespace-asterix-whitespace 为前提。例如:

所以它可以与/^\s*\*\s+/合理一致的东西相匹配。

我用来查找错误抑制字符用法的正则表达式(但也抓住了 perldoc)是:

除了拾取所有 perldoc 之外,它的结果是令人满意的。

我尝试查看一些负面预测的示例,但似乎并没有用我尝试过的任何东西来回避那些 perldoc 注释。一个不起作用的例子如下:

任何帮助表示赞赏

0 投票
1 回答
144 浏览

perl - -M 脚本开始时间减去文件修改时间,以天为单位

我希望-M $_是负数,但它为零:

perldoc是否提到了这种行为?

0 投票
1 回答
513 浏览

perl - Perl:实验功能和 Perldoc

我无意中在 Perl 5.20 中使用了 Perl 5.14 的实验性autoderef功能,当然也收到了有关其使用的警告。diagnosticspragma 解释了如何在需要时抑制这些警告消息;但是,我想更多地了解这个警告的根本原因(以及整个特性),所以我转向perldoc了解更多关于autoderef.

perldoc experimental命令列出了该autoderef功能,并对其目的进行了高级说明,但仅此而已。

perldoc perlexperiment命令提供了有关其他实验功能的更多详细信息,但autoderef根本没有提及。

我尝试了各种其他perldoc选项(例如,,-v-f),但无济于事。

warning使用 回溯此类/diagnostics消息的有效方法是什么perldoc?实验性功能不包括在 中perldoc吗?

更新:请参阅下面的@ThisSuitIsBlackNot 的优秀答案。

autoderef为了进一步清晰和参考:命名空间并未贯穿所有各种文档(即perlexperiment,perldelta等)似乎很奇怪perldocperldoc experiment叫它autoderefperldelta5140简称它auto-derefperldoc perlexperiment使用了perldelta页面中的一些语言,但不是autoderef或类似的。

既然diagnostics声明了相关的警告,可以使用no warnings "experimental::autoderef". 将其用作perldoc. 也就是说,找到与和/或perldoc experimental::autoderef提供的语法和语义相匹配的相关文档。diagnosticswarnings

0 投票
1 回答
479 浏览

perl - cpanm 不会在 perllocal.pod 中注册所有已安装的模块

根据CPAN 常见问题解答

每次在您的系统上安装一个模块时,它都会将信息附加到一个名为perllocal.pod

我已经使用 安装了几个 CPAN 模块cpanm,问题是某些模块没有在perllocal.pod. 例如,使用. _ _ _ 如果我输入cpanm

我得到输出:

请注意String::Util,即使所有三个模块都安装在 directory 下,它也会丢失/home/hakon/perl5/lib/perl5/。例如,如果我输入:

我得到输出:

注意:该问题与perldoc. 该perldoc命令只是在文件中显示 Pod perllocal.pod

由于此文件不包含任何 Pod for String::Util,因此问题很可能是cpanm我安装模块时没有注册它(出于某种未知原因)。

0 投票
1 回答
154 浏览

perl - 为什么 perldoc 在这里失败了?

下载了 ActiveState Perl V5.22.3(试过 V5.24,结果相同),我无法让 perldoc 运行!perldoc 以“无效参数 - -R”响应。

这是我的命令窗口:

使用此“-R”无效选项显示当前 PATH 设置和 perldoc 异常

我在运行脚本时没有问题 - 只是 perldoc。

在此先感谢您的任何建议。

0 投票
1 回答
176 浏览

perl - 如何查找(离线)perl 文档 - “不区分大小写”或使用正则表达式

当我不知道确切的语法时,如何从 perldoc(离线)获取信息?例如,在搜索“lwp”模块时,仅查找或(在 linux/unix 中)

是不够的。 作为初学者,我认为 perl 会提供类似搜索表达式的功能。 但是您必须找出模块的确切语法,然后您可以搜索文档(或者,您将编写一个 oneliner/grep 来搜索所有 pod 文件以查找表达式) - 但有时我不记得确切的语法,需要提示。 我错过了什么吗? 可以使用表达式而不是其他任何东西(-f / -m / ...)来搜索常见问题解答?谢谢您的支持。perldoc -m lwpperldoc -m lwp::simple
perldoc -m /lwp/



perldoc -q something

更新:
- Windows:(通过其不区分大小写的性质)可以运行perldoc [-m] lwp::simple并且会发现LWP::Simple
- Linux/Unix:perldoc 有一个不区分大小写的搜索-i参数。(请参阅)运行会发现LWP::Simpleperldoc -h
perldoc -i [-m] lwp::simple

(-m 参数显示模块代码和纯文本 POD 文档 - 可以留下它,因为它不是那么漂亮)

0 投票
1 回答
291 浏览

perl - Perl “do”,相对路径以“.”开头 或者 ”..”

我正在尝试将 Perl 的do EXPR函数用作穷人的配置解析器,使用第二个 .pl 文件,该文件只返回一个列表作为配置信息。(我认为这可能是 的理想用途do,尤其是因为我可以do or die在我的代码中写“”。)这是一个例子:

主文件

配置文件

阅读Perldocdo提供了很多关于相对路径的有用建议 - 搜索 @INC 和修改 %INC,关于 5.26 的特殊警告不搜索“。” 等等。但它也有这些位:

# 加载确切的指定文件(./ 和 ../ 特殊情况) ...


将 do 与相对路径一起使用(./ 和 ../ 除外),例如...

然后它实际上从不费心解释“./”或“../”的特殊情况路径处理 - 一个重要的遗漏!

所以我的问题都是关于“当你真正发生了什么do './file.pl';”的变体?例如...

  • 尽管 CWD 从 @INC 中删除,但此语法在 5.26 中是否仍然有效?
  • 无论如何,从谁的角度来看是“./”:Perl 二进制文件、执行的 Perl 脚本、来自用户 shell 的 CWD,还是其他?
  • 是否存在需要注意的安全风险?
  • 这比修改@INC 并仅使用基本文件名更好还是更差?

任何见解都值得赞赏。