Perl 的核心库是如何管理的?

2024-05-04

根据我的理解,Perl 传统上只包含核心功能,人们安装额外的库来完成各种有用的(有时是非常基本的)事情。但在某些时候,Perl 默认附带了“核心库”——因此您可以使用这些库而无需安装它们。

来自Python,我很好奇这是如何管理的。具体来说:

  1. 图书馆是如何选择的?
  2. 这些库还有自己的版本号和发布时间表吗?
  3. 使用这些库时有什么样的向后兼容性保证?
  4. 系统中这些库的升级或降级是否常见?这是在系统范围内完成的还是更具体的?
  5. 如果存在需要更改 API 的错误修复,这是如何发生的?
  6. 如何向这些核心库添加功能(如果有的话)?

  1. 目前,只有引导/安装其他库所需的库才会进入核心清单 http://search.cpan.org/dist/Module-CoreList/.
  2. 有些只存在于 Perl git 存储库中。有些在 CPAN 和存储库中具有双重生命。有时,错误会在存储库中得到修复,并且更改会向后移植到 CPAN 版本。有时 CPAN 上有新版本,Perl 维护者会将模块签入存储库。
  3. 您可以依赖核心模块。在删除之前有一个非常长的弃用时间跨度,最近的一个突出例子是Switch.
  4. 打包者(例如为 Linux 发行版构建 RPM 的人)永远无法做到这一点;包含路径的错误顺序(@INC)不是他们的错,并且终于在5.12修复了 http://perldoc.perl.org/perl5120delta.html#%40INC-reorganization。这就是建议编译您自己的 perl 并且不要弄乱系统安装的原因。在 5.12 中,您应该只使用 CPAN 来安装核心模块的升级版本,并且它会附加安装到系统附带的模块中,但由于新模块在包含路径中位于旧模块之前,因此新模块会出现在旧模块之前。当你加载时use/require it.
  5. 布置于政策 http://perldoc.perl.org/perlpolicy.html.
  6. 对功能进行编程并对其进行测试,记录该事物,然后在 CPAN 上发布或分别让维护人员应用变更集。这伴随着关于p5p http://www.perlfoundation.org/perl5/index.cgi?p5p.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Perl 的核心库是如何管理的? 的相关文章

  • 我需要一个便携式、一致的伪随机数生成器

    I am writing a kid sister encryption http enfranchisedmind com blog posts the kid sister crypto manifesto function and I
  • 从 Perl 脚本 DBI 关闭 MSSQL 服务器

    我正在写一个 perl 脚本 其中我必须关闭我的 mssql 服务器 做一些操作 然后我必须重新启动它 我知道一种方法是使用 netstat 来停止服务 但我不能使用它 所以我尝试安装 DBI 和 DBD ODBC 模块 我可以通过以下代码
  • 如何在 Perl 中取消导入函数?

    我正在尝试删除导入的符号 以便它们不能用作对象中的方法 但是no似乎不起作用 也许我不明白不 或者还有其他方法 use 5 014 use warnings use Test More still has carp after no car
  • perl生成字符串来匹配正则表达式

    我尝试找到一种方法来生成与正则表达式匹配的字符串 例如以下正则表达式 A Z 6 6 A Z2 9 A NP Z0 9 A Z0 9 3 3 0 1 我尝试过 Cpan 上的一些 perl 模块不起作用 gt 字符串 随机 gt 正则表达式
  • 如何从 Perl 调用 gnuplot 脚本

    我有一个 gnu gp 文件 grphist conf set terminal canvas Terminal type set to canvas Options are solid butt size 600 400 fsize 10
  • Perl Mongo 查找对象 ID

    你会认为这是一件简单的事情 我有一个集合中的对象 ID 列表 我想根据对象 ID 获取单个记录 谷歌搜索过 但没有任何帮助 所以我有对象 ID 5106c7703abc120a04070b34 my client MongoDB Mongo
  • perl imap 将邮件移至垃圾箱 (Mail::IMAPClient)

    我需要将所有未见的邮件移至垃圾箱 然后从收件箱中删除 my inbox imap gt select Inbox my mails imap gt unseen foreach my msgid mails imap gt set flag
  • 如何使用 Perl 从 NCBI 获取 FASTA 核苷酸格式的基因特征?

    我可以手动下载 FASTA 文件 如下所示 gt lcl CR543861 1 gene 1 ATGCTTTGGACA gt lcl CR543861 1 gene 2 GTGCGACTAAAA 通过单击 发送到 并选择 基因特征 FAST
  • 如何设置 $!在 Perl 中

    我想在 perl 中编写一些设置 的函数 与内置 perl 函数类似 当我尝试执行此操作时 它抱怨 参数 无法创建管理员用户 在标量分配中不是数字 我试过用谷歌搜索这个 但不幸的是谷歌不会在 所以结果很难得到 if createUser a
  • 使用 Getopt::Long 解析参数的最简洁方法

    我使用 GetOpt 来解析命令行参数 我想添加一个新选项 multi 它应该得到一个如下所示的字符串 key1 abc key2 123 key3 xwz 我不知道用户想要提供多少个自定义密钥 但他可以提供 minimax5键 另外 我想
  • 使用 Perl 分割大文本文件

    我必须将一个 1 8Tb 的大文本文件分成两部分 我只需要文件的后半部分 该文件有 n作为记录分隔符 I tried perl ne print if gt line to start from test txt gt result txt
  • Perl 导入到我的所有包中?

    我倾向于经常使用 Data Dumper 最终我的 pl 代码中每个包的顶部都有以下样板 use strict use warnings use Data Dumper Data Dumper Deparse 1 Data Dumper P
  • 如何在调试器模式下运行 perl 测试?

    我尝试在调试器下运行测试 perl d which prove t file t 但这没有任何效果 因为每个测试都是作为单独的作业运行的 我已经发现 exec选项 但是当我提供它时 我失去了任何选项 proverc文件和命令行 prove
  • 找不到 DBI.pm

    我正在尝试启动这个脚本 usr bin perl use DBI my dbh DBI gt connect dbi Oracle host lonlin2 sid TIMFX1AD port 1524 xbsesdbo xbsesdbo1
  • 如何编写 Perl 脚本来使用 curl 处理 URL?

    我有一个非常简单的任务 我有一个 crontab 每小时运行一个脚本 该脚本旨在简单地处理 URL 这就是我所拥有的 这不起作用 我收到语法错误 usr bin perl curl http domain com page html 我已经
  • MIME::Lite - 无法发送邮件 [smtp.gmail.com 不支持 SMTP auth() 命令]

    use MIME Lite use warnings use MIME Base64 use Authen SASL use MIME Lite use MIME Base64 use Authen SASL use warnings us
  • 向用户提示多个问题(是/否和文件名输入)

    我想问用户多个问题 我有两种类型的问题 是 否或文件名输入 我不知道如何将这一切放入一个好的if结构 我不确定是否也应该使用 else 语句 有人可以帮我们解决这个问题吗 这是我到目前为止所拥有的 print Do you want to
  • 如何将 Perl 转换为 C?

    有没有可用的工具可以将 Perl 源代码转换为 C 源代码 什么平台都可以 对此的规范答案是MJD 的 为什么不将 Perl 翻译成 C http www perl com pub a 2001 06 27 ctoperl html
  • Perl:HTTP::微小删除留下损坏的锚标记

    我编写了一个脚本 该脚本收集从数据库读取的缓冲区内的所有 URL 检查该页面是否仍然存在 并使用 HTTP Tiny 从缓冲区中删除 URL 如果该 URL 无法访问或返回无效 问题是 HTTP Tiny 删除左锚标记 例如此处无效的文本
  • Perl 正则表达式图灵完备吗?

    我见过 Ruby 和 Perl 程序员做了一些事情复杂的代码挑战 https codegolf stackexchange com questions 3596 regex validating regex完全用正则表达式 这前瞻和后瞻 h

随机推荐

  • EF 型号。导航属性只能参与单个关系

    我有这样的实体 它们紧密相连 public class Game public int Id get set public int FirstTeamId get set public Team FirstTeam get set publ
  • 增加 .fig 文件中的散点标记大小

    我有一个图形文件 scatter fig 该图有许多使用 scatter 的散点绘图仪 现在我只有这个无花果文件 我需要增加所有散点的标记大小 手动尝试过 但非常困难 有没有办法我可以做类似的事情 H 图形句柄 s 点 h 设置 s 标记大
  • 为什么 -INT_MIN = INT_MIN 在有符号的二进制补码表示中?

    我仍然没有找到为什么最低的有符号负数没有等效的有符号正数的原因 为简单起见 我的意思是 3 位二进制数 100 是 4 但我们不能有符号格式的正 4 因为我们不能 它溢出了 那么我们如何知道补码 1000 是 4 1000 0000 是 1
  • eval 列表理解失败[重复]

    这个问题在这里已经有答案了 考虑以下假设代码 class B object def init self self b 2 def foo self out1 eval self b ok print out1 prints 2 out2 e
  • 使用 MySQL Workbench 创建新数据库

    作为 MySQL 新手 我安装了最新版本的 MySQL Workbench 5 2 33 我想知道如何使用此应用程序创建数据库 在 SQL 编辑器的 概述 选项卡中 几乎没有显示 MySQL 架构 这些架构是现有数据库吗 启动 MySQL
  • Rails 在部分内用逗号分隔数组项

    Rails 中在部分内部创建逗号分隔列表的最优雅的方法是什么 我最近发现您可以使用部分来迭代从另一个视图模板发送的集合 所以在视图模板中我有 然后在 view directors director html erb中 这实际上做了类似的事情
  • 如何删除在设计器模式下创建的插槽?

    我已经创建了按钮cancelButton 然后我创建了函数槽on cancelButton clicked 使用上下文菜单项Go to slot 但是 过了一段时间 我删除了这个按钮 不再需要 并尝试删除该函数 但编译器给出错误undefi
  • 本地分析需要 Sonar 3.6 版本

    遇到 执行本地分析需要声纳版本 3 6 消息 当尝试在 eclipse 中使用声纳本地分析时 我刚刚安装了最新的CodeHaus http docs codehaus org display SONAR Installing SonarQu
  • 列表有简短的 contains 函数吗?

    给定一个列表xs和一个值item 如何检查是否xs包含item 即 如果任何元素xs等于item 有没有类似的东西xs contains item For performance considerations see Fastest way
  • 可以使用UIAppearance设置UINavigationItem的titleview吗?

    我目前使用此代码来设置导航项的 titleView void viewDidLoad UIImage navbarTitle UIImage imageNamed navbartitleview1 UIImageView imageView
  • 如何在 VS TextMateRules 中将标记设为粗体+斜体

    在 Visual Studio Code 中 我编辑 Markdown 文件 在编辑器中标记的文本 bold 被渲染bold以及标记的那个 italic 呈现在italic 但文字标记 bold and italic 简单地呈现为itali
  • Android:如何设计智能手机和平板电脑的应用程序?

    我知道已经有很多了博客文章 http android developers blogspot com 2011 02 android 30 fragments api html how to s http developer android
  • 设计用于初始化的VHDL状态机

    如何最明智地设计用于初始化芯片的 VHDL 状态机 我当前的设计是 伪代码 案例状态 当 s0 gt VHDL CODE FOR WRITING VALUE TO REGISTER状态 s1 当 s1 gt VHDL CODE FOR WR
  • 如何在 App Engine 中灵活更改 /dev/shm 的大小

    如何更改共享内存文件夹的大小 dev shm在 App Engine 灵活应用程序中 默认情况下 它设置为 64M 太低 无法运行许多应用程序 例如 Chrome 我看不出有什么办法可以改变它 如果您有权访问 可以通过多种方法进行更改doc
  • pandas Series.tolist() 中的 NaN 与 list 中的 NaN 的行为不同

    Why does gt gt import pandas as pd gt gt import numpy as np gt gt list pd Series np nan np nan 2 np nan 2 np nan np nan
  • CXX 编译器标识未知

    我们在使用 Visual Studio 2012 在 Windows 7 64 位下使用 CMake v2 8 12 编译项目时遇到问题 CMake 给我们提供了以下错误 我们已经尝试使用管理员权限从 Visual Studio 命令行启动
  • 如何纠正 Firefox 中侧边栏的固定定位?

    我的网页中有以下 HTML 我想将侧边栏固定在左侧 它在 Chrome 中工作正常 但 Firfox 没有将侧边栏显示为固定 div div h1 Heading h1 div div
  • requestLocationUpdates minTime 参数用途

    我正在创建一个应用程序 用于教育目的 它每 30 分钟记录一次用户的位置 并使用户能够查看地图上的所有位置 我不希望更新频率超过 30 分钟 但事实确实如此 这就是我的称呼requestLocationUpdates locationMan
  • 压缩保存在Google云存储中的文件

    是否可以压缩已保存在 Google 云存储中的文件 这些文件由 Google 数据流代码创建和填充 数据流无法写入压缩文件 但我的要求是将其保存为压缩格式 标准 TextIO Sink 不支持写入压缩文件 因为从压缩文件中读取的可扩展性较差
  • Perl 的核心库是如何管理的?

    根据我的理解 Perl 传统上只包含核心功能 人们安装额外的库来完成各种有用的 有时是非常基本的 事情 但在某些时候 Perl 默认附带了 核心库 因此您可以使用这些库而无需安装它们 来自Python 我很好奇这是如何管理的 具体来说 图书