问题标签 [metacpan]
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.
perl - 如何在 MetaCPAN 上进行滚动搜索?
我正在尝试将此脚本转换为使用新的Elasticsearch 官方客户端而不是旧的(现已弃用)ElasticSearch.pm,但我无法让滚动搜索工作。这是我所拥有的:
第一次搜索,我只是在一个块中获得所有结果,工作正常。但是我试图滚动浏览结果的第二次搜索会产生:
我究竟做错了什么?我正在使用 Elasticsearch 0.75 和 Elasticsearch-Cxn-NetCurl 0.02 和 Perl 5.18.1。
perl - 如何在 MetaCPAN 上找到开发者版本?
如果该模块仅作为开发人员版本提供,是否可以在MetaCPAN上找到该模块?
perl - 在 Devel::CoverReport::DB 中 .12 和 .13 格式是什么意思?
我正在使用“Devel::Cover”cpan 模块生成覆盖范围,该模块生成cover_db 并在内部有一个运行子目录。在运行目录中,我得到文件cover.14。如何获得 .12 或 .13 格式的文件,这种 .12、.13 或 .14 格式是什么意思?当我使用“Devel::CoverReport”模块的cover_report 生成此文件的html 报告时,根据模块的以下子例程提到它支持.12 和.13 格式,但我得到的是.14 格式
下面是在 Devel::CoverReport::DB 中使用的子程序,它显示 .12 或 .13 格式。
read_db_file
读取并解析 DB 文件,然后返回文件中的数据结构。
默认情况下,它假定该文件是可存储的数据转储。当 storable 失败时,它会尝试使用 JSON 来加载数据。
此方法支持读取 .12 和 .13 文件格式。它可以自动检测它是用可存储的还是 JSON 序列化的。
如果可能的话,解释一下这个子程序是什么意思。
perl - 当我只想要 Mo 时,为什么 CPAN.pm 安装 Moose?
我需要一个 perl5 脚本中的轻量级对象系统。在阅读了Mouse.pm、Moo.pm和Mo.pm的文档后,我在 Moo 和 Mo 之间折腾。最终的决定因素是 Mo 模块没有依赖关系(见页面右侧 - ”依赖项”是灰色的)。
因此,我继续进行我认为简单的安装:
所以我的问题是 - 为什么它认为它需要Mouse
,IO::All
而且,最痛苦的是,Moose
?请注意,我可以看到它说 [requires,optional] - 但我认为这两个术语是矛盾的。
perl - 如何使 CPAN::Meta::Spec 的“先决条件”需要分发而不是包?
我正在研究如何打包我的一些 Perl 应用程序并更好地管理它们的依赖项,以使我和我的客户更容易分发,这很可能根本不包括上传到 CPAN。相反,如果有必要,我会提供自定义 repos,或者更有可能的是访问像 Subversion 这样的 SCM。
CPAN::Meta::Spec似乎提供了我需要描述我的应用程序、它们的依赖关系甚至从何处获取它们的内容,但我想知道的是先决条件的详细程度。该规范包含以下句子:
必须将关系集指定为包名称到版本范围的映射。
对我的需求来说,要求包似乎有点太低了,我宁愿要求发行版。像 Maven 和 Gradle 这样的级别(根据我的理解)工具几乎可以工作,例如 Apache Commons Lang 与 Apache Commons IO 等,而不是像org.apache.commons.lang3.AnnotationUtils
or之类的单个类org.apache.commons.io.ByteOrderMark
。OTOH,文档中的示例包含以下几行:
包含的行perl
对我来说看起来不像一个包,我没有在我的系统上找到一些package perl
或任何地方。perl.pm
在我看来,这与示例中的其他事情的处理方式不同。
我有一个系统范围的文件夹,其中包含例如一些实用程序包,这对我来说似乎与一些抽象相当perl
。该文件夹应该被定义为一个发行版,为该文件夹中的所有包维护一个版本号,因此应该允许其他应用程序访问require
整个内容。如果我正确理解文档,我不仅需要META.yml
在文件夹中创建,还需要创建一些,例如sysutils.pm
包含package sysutils;
和定义一些版本。
有什么方法可以避免创建该文件,而实际上require
只创建发行版本身?
它META.yml
本身已经包含一个名称和版本,所以看起来像一些require
理论上可以抽象的东西。我不认为需要添加一个额外的.pm
-file 代表分发本身只是为了允许require
工作。在我的情况下,它不包含任何业务逻辑。
谢谢!
perl - 结构“提供”的关键“文件”如何与“CPAN::Meta::Spec”的“META.*”一起使用?
我试图更好地理解我可以使用 什么,并在 key规范CPAN::Meta::Spec
中遇到以下句子:file
[...]到包含或生成包的文件。它可以作为 META.yml 或 META.json 给出,以声明用于索引的包,而不需要 *.pm。
这句话对我来说就像一个能够META.*
使用文件路径而不是*.pm
. 因此,使用it
, 这显然与前面提到的路径相关联。很像下面的例子:
因此,虽然Foo/Bar2.pm
和Foo/Bar3.pm
可能存在于发行版中,但它们没有显式定义,而是隐式使用META.*
文件。
这样的
META.*
外观如何,它包含什么?name
只有和之类的东西version
,这也是原生 Perl 包可能提供的东西?license
或者像and之类的其他东西keyword
,也许除了依赖关系之外的所有东西?CPAN 客户如何处理这种情况?
META.*
显然不是 Perl 包本身,我看不出它是如何用来生成它的。那么最终实际安装在系统中的是什么?是否有一些额外的机制以某种方式生成包?如何提供
META.*
而不是*.pm
兼容密钥version
和以下限制:
[...]如果包没有 $VERSION,则必须省略此字段。
在这种情况下是否META.*
算作一个包含的包裹$VERSION
?或者是否期望最终以某种方式生成包并且必须也具有$VERSION
并且只要不生成包,META.*
就可以简单地使用的版本?
感谢您的澄清!
metacpan - 为了更改您的个人资料,您必须将您的帐户连接到 PAUSE
我刚刚在https://metacpan.org开设了一个帐户,并想编辑我的个人资料。但是,CPAN 需要一个PAUSE
帐户。
为了更改您的个人资料,您必须将您的帐户连接到 PAUSE。
当我点击链接时,会弹出一个提示:Please enter your PAUSE ID:
错误出现在配置文件页面上。
什么是暂停 ID?谷歌搜索它把我带到预订网站。
perl - 如何在同一发行版中创建从模块到脚本的 Pod 链接?
考虑这个模块App::TimeTracker。如果您单击该部分中的tracker
链接,您将到达此处,而您应该已到达此处。这里给出了负责该行为的 Pod 源代码,这表明使用了以下 Pod 格式化代码:SYNOPSIS
我可以通过提供绝对链接来解决问题:
但这修复了指向 3.000 版本的链接,该版本将来可能会更改。
那么一般应该怎么做呢?
perl - 如何通过 Email::Simple 发送电子邮件?
我想发送电子邮件。我的Email::Simple
(模块版本 2.216)对象是:
在这里通讯停止了。我这边正在等待邮件服务器,邮件服务器正在等待我这边的东西。然后服务器因超时断开连接
如何通过正确发送 utf8 文本Email::Simple
?
我的代码:
UPD
邮件正文是:
当Encode::decode( 'utf8', $body )
我收到错误时:
当我Encode::encode( 'utf8', $body )
并且寄出
然后一切都很好: