问题标签 [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.
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 都位于此文件夹中。
perl - Perl 在非严格模式下解引用
在 Perl 中,如果我有:
要对数组的一个元素进行操作,比如说第二个,我会写(可能作为更大表达式的一部分):
虽然,出于某种原因,这些也有效:
导致所有在同一个对象中:
输出:
启用这种结构的语法规则是什么?使用这些结构中的每一个,或者混合所有这些结构,设计出可靠的程序代码能走多远?这些表达的互换性如何?(总是在非严格的上下文中说话)。
关于证明我如何进入这个问题的理由,我同意“使用严格”作为一种更好的做法,但我仍然对建立非严格表达式的一些知识感兴趣。
在试图为自己的这种不安找到一些帮助时,我想到了:
- “不严格”的概念;不要抱怨未声明的变量和怪异的语法。
- 前缀取消引用具有比子索引 [] 更高的优先级(perldsc §“优先级警告”)。
- 关于何时使用 @ 而不是 $ 的说明(perldata § "Slices")。
- Perl 的运算符 (perlop) 中缺少“[]”(数组下标/切片)描述,这让我认为它不是运算符……(但它必须是别的东西。但是,什么?)。
对于我所学到的,这些提示都没有让我更好地理解我的问题。
提前致谢。
perl - perldoc perllocal 显示已安装的其他模块
我确实更改了 cpan 模块的 install-dir 并将这个目录添加到 PERL5LIB 以便我可以在我的脚本中使用这些模块。
我想要一个我安装的模块的概述,但是当我执行“perldoc perllocal”时,我会列出 LWP::MediaTypes、Encode::Locale、IO::HTML 和 HTTP::Date,尽管我只安装了 HTTP:Request。
我知道由于依赖关系我已经安装了更多模块,但是为什么没有列出 HTTP:Request 并且也没有 LWP::UserAgent 虽然我可以在我的脚本中使用它?
谢谢
php - PHP Regex 排除注释发现错误抑制
@
我正在尝试做一个正则表达式来查看一个预先存在的代码库,该代码库似乎在变量引用和函数调用上都滥用了 php 错误抑制字符 ( )。因此,我想搜索整个代码库以创建所有用法的列表。问题是,大部分代码还包括 perldoc,我不确定如何排除明显的注释。
大多数 perldoc 似乎都以最少的 whitespace-asterix-whitespace 为前提。例如:
所以它可以与/^\s*\*\s+/
合理一致的东西相匹配。
我用来查找错误抑制字符用法的正则表达式(但也抓住了 perldoc)是:
除了拾取所有 perldoc 之外,它的结果是令人满意的。
我尝试查看一些负面预测的示例,但似乎并没有用我尝试过的任何东西来回避那些 perldoc 注释。一个不起作用的例子如下:
任何帮助表示赞赏
perl - -M 脚本开始时间减去文件修改时间,以天为单位
我希望-M $_
是负数,但它为零:
perldoc是否提到了这种行为?
perl - Perl:实验功能和 Perldoc
我无意中在 Perl 5.20 中使用了 Perl 5.14 的实验性autoderef功能,当然也收到了有关其使用的警告。diagnostics
pragma 解释了如何在需要时抑制这些警告消息;但是,我想更多地了解这个警告的根本原因(以及整个特性),所以我转向perldoc
了解更多关于autoderef
.
该perldoc experimental
命令列出了该autoderef
功能,并对其目的进行了高级说明,但仅此而已。
该perldoc perlexperiment
命令提供了有关其他实验功能的更多详细信息,但autoderef
根本没有提及。
我尝试了各种其他perldoc
选项(例如,,-v
等-f
),但无济于事。
warning
使用 回溯此类/diagnostics
消息的有效方法是什么perldoc
?实验性功能不包括在 中perldoc
吗?
更新:请参阅下面的@ThisSuitIsBlackNot 的优秀答案。
autoderef
为了进一步清晰和参考:命名空间并未贯穿所有各种文档(即perlexperiment
,perldelta
等)似乎很奇怪perldoc
。perldoc experiment
叫它autoderef
,perldelta5140
简称它auto-deref
。perldoc perlexperiment
使用了perldelta
页面中的一些语言,但不是autoderef
或类似的。
既然diagnostics
声明了相关的警告,可以使用no warnings "experimental::autoderef"
. 将其用作perldoc
. 也就是说,找到与和/或perldoc experimental::autoderef
提供的语法和语义相匹配的相关文档。diagnostics
warnings
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
我安装模块时没有注册它(出于某种未知原因)。
perl - 如何查找(离线)perl 文档 - “不区分大小写”或使用正则表达式
当我不知道确切的语法时,如何从 perldoc(离线)获取信息?例如,在搜索“lwp”模块时,仅查找或(在 linux/unix 中)
是不够的。
作为初学者,我认为 perl 会提供类似搜索表达式的功能。
但是您必须找出模块的确切语法,然后您可以搜索文档(或者,您将编写一个 oneliner/grep 来搜索所有 pod 文件以查找表达式) - 但有时我不记得确切的语法,需要提示。
我错过了什么吗?
可以使用表达式而不是其他任何东西(-f / -m / ...)来搜索常见问题解答?谢谢您的支持。perldoc -m lwp
perldoc -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 文档 - 可以留下它,因为它不是那么漂亮)
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 并仅使用基本文件名更好还是更差?
任何见解都值得赞赏。