CPAN常见问题集

2023-10-31

 

CPAN常见问题集


想要更详细的关于perl的文档,你应该到这里来看看(www.perl.com)。如果想看perl FAQ,可以到这里来(perlfaq.cpan.org)
? 1998-2001 Elaine Ashton <hfb@chaos.wustl.edu> 和 Jarkko Hietaniemi <jhi@iki.fi>,版权所有


I. -常见问题

  • 什么是perl

  • 什么是perl6

  • 什么是CPAN

  • CPAN的logo从何而来,以及我可以在我的文档中使用它吗?

  • 什么是PAUSE、

  • CPAN是如何运作的

  • CPAN是如何自动引导到不同服务器上去的


II. -关于如何取得perl源程序,模块和脚本的问题

  • 从哪里我可以找到当前PERL的源程序?

  • 从哪里我可以找到老的PERL源程序和模块?

  • 我因该如何理解perl的版本号呢?

  • 我因该如何从源文件开始安装perl呢?

  • 从哪儿我可以找到perl的模块呢?

  • 我要如何卸掉已安装的perl模块?

  • 我怎样才能知道我安装了那些模块?

  • What is a bundle and how do I make one for my own use or distribution on CPAN?

  • 我怎样确定某个模块是否可以运行在我的系统上?

  • 我要怎样手工安装一个模块在私人/非标准的目录下呢?

  • 我要如何使用一个安装在私人/非标准的目录下的模块呢?

  • 从哪儿我可以找到最近更新的perl模块?

  • 从那儿我可以找到windows上的模块?

  • 从哪儿我可以找到perl的binaries/package和perl模块的编译包?

  • perl以及CPAN模块是如何授权的?

  • 标准的perl源程序发布版本中包括模块吗?

  • 那些模块是平台相关的?

  • 从哪儿我可以找到perl 脚本?

 


III.-RIF 〖Reading is Fun-duh-mental】

  • 从哪儿我可以找到perl FAQs呢?

  • 从哪儿我可以找到perl文档?

  • 从哪儿我可以找到perl模块的文档?

  • 从哪儿我可以找到perl DBI/DBD/database 文档?

  • 我要怎样才能找到/加入/创建perl邮件列表?

  • 从哪儿我可以找到perl journals/magazines?

  • 从哪儿我可以找到perl课程/训练/在线教程?

  • 从哪儿我可以找到在CD-ROM上的CPAN?

  • 我要怎样才能找到/加入/组织一个perl用户小组?

  • 从哪儿我可以找到perl的发展史?


IV.-错误总是会发生,我要如何解决

  • 当我下载一个模块的时候出错了,我该如何去做?

  • 我下载了一个损坏了的模块/脚本/文件,我该如何去做?

  • 我要如何使用Foo::Bar模块,你可以帮忙吗?

  • 当我下载一个模块时一个VRML阅读器打开了然后报错,我该如何去做?

  • 从哪儿我可以找到GDBM_File/DB_File模块?

  • 我使用search.cpan.org时出了点问题,我该联系谁?


V.-搜索CPAN,CSPAN其他的已有资源

  • 我怎样使用CPAN的搜索引擎?

  • 我要如何去搜索模块/脚本的文档?

  • 我要如何去查找关于perl的东西

  • 我要如何去寻找Ralph Nader?(我们是C-P-A-N,不是C-S-P-A-N!)


VI. -发布模块,补丁以及如何报告BUG

  • 我要怎样才能发布模块到CPAN上去呢?

  • CPAN上可以发布共享软件或模块以便可以得到一点报酬或其他什么的吗?

  • 我要如何发布脚本到CPAN上去?

  • 我要如何发布文档

  • 我要如何去报告/修复一个在perl/或它的文档中的BUG?

  • 我要如何报告一个在模块/脚本中的BUG?

  • 当某个模块的作者不愿维护时,我要如何去维护该模块呢?

  • 有专门用来处理模块错误报告的站点吗?

  • CPAN上可以下载到关于作者的统计表吗?


VII.-如何去镜像CPAN

  • 我要如何去镜像CPAN?

  • 如果我要镜像CPAN的话,我需要些什么?

  • 我的系统是windows的,我要如何镜像CPAN呢?

  • 我该镜像哪一个CPAN站点?

  • 我要如何注册我的镜像站点以便它可以被公众访问?


什么是perl

perl文档中是这样定义的:

perl是一种高级语言,它是由Larry Wall和其他的几千个人创造出来的,他大量继承了C语言的特性,同时还从sed,awk和UNIX shell中继承了一些特性,还从其他的至少一打的工具和语言中继承了某些特性。perl对文件处理的能力使它非常适合于解决各种任务,建造原型,系统管理,数据库操作,图形编程,网络和WWW编程,这些特性使得他非常受到系统管理员的欢迎,但是其他的例如数学家,生物学家,新闻人员甚至于管理人员都使用perl。可能你也会使用它

参考:http://www.sysadminmag.com/tpj/whatisperl.htm

寻找perl资料的两个好的站点是 http://www.perl.comhttp://www.perl.org


什么是perl6?

在第二次O'Reilly开放源代码会议上,Larry Wall宣布了对perl6的开发。perl6仍然会继承perl5的特性,当然它会用C++改写,它的另一个名字是Topaz。

如果你对开发感兴趣,可以到这里来http://www.perl.org/perl6/

"We're really serious about reinventing everything that needs reinventing." --Larry Wall


什么是CPAN?

CPAN是“perl档案智能网络”的意思,其中包括了大量的perl模块,软件和文档。你可以从以下几个地方找到CPAN:http://www.cpan.orghttp://www.perl.com/CPAN/或其他的列在http://www.cpan.org/SITES.htmlhttp://mirror.cpan.org中的镜像站点

同时请注意,CPAN还是一个PERL的模块名,CPAN.pm是一个用来自动下载和安装perl模块的工具,本文档只有少量的关于CPAN.pm的介绍,如果你想要更多的资料请到这里来http://theoryx5.uwinnipeg.ca/CPAN/perl/CPAN.html


CPAN的logo从何而来,以及我可以在我的文档中使用它吗?

CPAN的logo是由J.C.Thorpe应我们的要求而制作的,字母“A”是由三本书组成的。

我们允许你在以下情况下使用CPAN logo:制作一个链接到CPAN或者你写的讨论CPAN的文章。在其他情况下使用的话,请与我们联系!


PAUSE是什么?

PAUSE是“Perl Authors Upload SErver”的意思,它允许注册帐户上传他们的perl文档,模块,脚本到CPAN上去。CPAN和PAUSE经常交叉的使用,但是他们之间是不同的,在CPAN.pm中有关于他们的简单讨论;

在这里的讨论中他们看起来好像是一样的--但实际上他们不一样。PAUSE是authors/,modules和scripts。而CPAN是PAUSE加上clpa/,doc/,misc/,ports/和src。

如果你想要发布模块的话,请参考以下文档'How do I contribute modules?'。


CPAN是如何工作的?

CPAN是由数百位开发者协同工作,超过175个镜像站点共同提供服务,空间和计算能力而组成的,志愿者帮助保持所有的东西可以使用并且负责更新维护。下面是镜像站点分布图

当一个发布者通过PAUSE发布了一个模块以后,该模块在一小时内将被镜像到全球的其它镜像站点。CPAN上运行着不同的脚本不停的检查镜像站点是否有用。还有一些人帮助发布者选择模块名字以及命名空间,另外也有一些人专门负责回答问题和收集各种信息发布到cpan@perl.org上去,以供进一步的讨论。


CPAN中的智能选择是如何工作的?

CPAN Multiplexer是由Tom Christiansen编写的,他运行在http://www.perl.com/CPAN上,提供可用的镜像服务器的列表并可以自动将你带到距离你最近的站点上去,当然你也可以自己选择站点。他根据域名的尾部来判断和分类站点,例如一个“*.ac.uk”的地址将被归类到.uk下面去,而一个*.com将被直接归类到perl.com下面。


从哪里我可以找到当前PERL的源程序?

Perl Mongers有一个"Download Perl"的按钮,如果你感兴趣的话,你可以到这儿来 http://www.pm.org/web_site_frosting.shtml


从哪里我可以找到老的PERL源程序和模块?

如果你没有一个十足的理由的话就不要安装老的版本,因为他们或多或少的包含一些bug甚至是安全方面的bug。

需要安装老版本的理由有:想要支持perl 4程序,再现一个只有在老版本中才有的bug,或者是喜欢研究perl的历史。

CPAN中没有老的版本,不过你可以从以下站点中找到你想要的东西:


我该如何理解perl的版本号呢?

目前perl从v.5.6.0开始它的版本号:

perl v5.6.0是继上一个5.005版本的最近的一个版本。你可能已经注意到了,现在的版本号已经变了,它的版本号是分为偶数与基数的,偶数版本是稳定版,反之则是开发版,这同linux内核版本号是一样的。例如5.6.*是稳定版,而5.7.*这是开发版本号。

你可以从perl文档中知道更详细的内容。


我该如何从源文件开始安装perl呢?

首先你需要一个C编译器。在下载并解压之后,你要先读一读INSTALL文档(这里有如何安装的详细说明)。当然了,还有一些平台依赖性的文件需要你去看看,如果你的安装平台比较特殊的话!!

perl可以使用从源文件安装的方法安装到所有支持的平台上去。其中包括所有的UNIX系列以及兼容的(如OS/2,PLAN 9,QNX,Amiga,MPE/iX,OS390,Stratus VOS等等),WINDOWS系统。其中以下几个平台比较特殊

  • MacOS (1)

  • AS/400 (2)

  • Novell Netware (2)

1。用于运行在MAC上的源文件可以从这儿得到 http://www.cpan.org/ports/mac/

2。用于AS/400和Novell netware的还没有包括到标准PERL发布版本里面,如果你想要安装的话,请到这几个地方看看:http://www.cpan.org/ports/As400/http://www.cpan.org/ports/netware/以及http://www.cpan.org/src/README

 


从哪儿我可以找到perl的模块呢?

基于模块在不停的增加,我们推荐你使用CPAN的搜索引擎,尤其是当你知道你想要什么的时候!!


我要如何安装PERL模块

最简单的方法是perl -MCPAN -e 'install Chocolate::Belgian',CPAN.pm文档有详细的如何使用该方法的介绍。如果你不想要让系统过多的控制你的安装或者它根本就不能使用的话,那么你就要看看这篇文章了perlmodinstall,他涵盖了UNIX,WINDOWS和Macintosh这几种主流系统。

如果你是使用的ActivePerl(WINDOWS平台),那么PPM(Perl Package Manager)也可以起到相当于CPAN.pm模块的作用。

手工安装一般是

  1. 进入模块目录

  2. make Makefile.PL

  3. make;make test

  4. make install(这一步需要管理员权限,或者你将模块安装到你的个人目录下面)


我要如何移除已经安装了的模块?

使用ExtUtils::Installed和ExtUtils::Packlist这两个模块来实现。下面是一个例子,在ExtUtils::Packlist中有更详细的例子,可以参考一下。
#!/usr/local/bin/perl -w

use ExtUtils::Packlist;
use ExtUtils::Installed;

$ARGV[0] or die "Usage: $0 Module::Name/n";

my $mod = $ARGV[0];

my $inst = ExtUtils::Installed->new();

foreach my $item (sort($inst->files($mod))) {
print "removing $item/n";
unlink $item;
}

my $packfile = $inst->packlist($mod)->packlist_file();
print "removing $packfile/n";
unlink $packfile;


我怎样才能知道安装了哪些模块在我的机子上呢?

  • perldoc perllocal

    每当你安装了一个模块,它就会在一个叫perllocal.pod的文件中添加如下所示的信息。而该文件所在地依赖于你所定义的PATH路径,PATH路径可以使用perl -V显示出来。

    下面是添加在perllocal.pod中的文件

    =head2 Wed May 12 13:42:53 1999: C<Module> L<Data::Dumper>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CPAN常见问题集 的相关文章

  • 我们可以在 android studio 中拥有没有 app 文件夹的项目,并将所有内容(java/res/etc)放在根目录中吗

    我想知道在 Android studio 中是否可以有没有应用程序模块 应用程序或任何其他名称 的 android 项目 意味着我可以在项目本身的根目录中创建包和资源 而不是使用应用程序模块 编辑 结构看起来像 MyApp idea gra
  • Web 开发中的 Perl [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这
  • 如何使用 Perl 和正则表达式将 SQL 文档转换为 ColdFusion 脚本?

    我需要将 SQL 语句文档转换为 ColdFusion 文档 我对正则表达式只有一点经验 而且我是 Perl 超级新手 我昨天刚刚自学了它的基础知识 所以我可以完成这项任务 我正在尝试用 Perl 编写的脚本匹配和替换模式 该脚本保存为 B
  • 如何在 Perl 中发送此 SOAP XML?

    我必须发送下面的 XML 我有no idea从哪儿开始 我知道我需要在 Perl 中查找 SOAP 但大致就是这样
  • Python 中的六边形自组织映射

    我在寻找六边形 自组织映射 http en wikipedia org wiki Self organizing map在Python上 准备好模块 如果存在的话 绘制六边形单元格的方法 将六边形单元作为数组或其他方式使用的算法 About
  • 如何使用 Perl 在 Unix 中获取文件创建时间

    如何使用 perl 在 unix 中获取文件创建时间 我有这个命令显示文件的最后修改时间 perl MPOSIX le print strftime d b Y H M localtime lstat 9 for ARGV file txt
  • 如何从 Adob​​e AIR 中的文件流获取字节数组?

    我阅读的内容有限 小 15 500 mb 文件 我需要能够将所有文件字节放入一个字节数组中 所以我有一个功能 Bindable public var ba ByteArray new ByteArray code protected fun
  • 在 Perl 中实现 CLI 工具的最佳实践是什么?

    我正在使用 Perl 实现 CLI 工具 我们可以遵循哪些最佳实践 作为前言 我花了 3 年时间为一家大型金融公司设计并实现了一个相当复杂的 Perl 命令行工具集 以下想法基本上是我们团队设计指南的一部分 用户界面 命令行选项 允许尽可能
  • Golang:从文本文件中替换字符串中的换行符时出现问题

    我一直在尝试读取一个文件 然后将读取的材料放入字符串中 然后字符串将按行分割成多个字符串 absPath filepath Abs Go input txt data err ioutil ReadFile absPath if err n
  • Python MySQL 模块

    我正在开发一个需要与 MySQL 数据库交互的 Web 应用程序 但我似乎找不到任何真正适合 Python 的模块 我特别寻找快速模块 能够处理数十万个连接 和查询 所有这些都在短时间内完成 而不会对速度产生重大影响 我想我的答案将是游戏领
  • 检查程序是否正在运行,如果不在 perl 中则运行它

    我想知道如何检查程序是否正在运行 如果没有则运行该程序 使用 Kill 函数向要检查的进程 ID 发送 0 零 信号 如果进程存在 函数返回true 否则返回false Example check if process 1525 is ru
  • 无法在 Golang 中导入本地模块

    我正在尝试导入本地模块 但无法使用以下命令导入它go mod 我最初使用以下方式构建了我的项目go mod init github com AP Ch2 GOMS 注意我的环境是go1 14我使用 VSCode 作为我的编辑器 这是我的文件
  • 如何使用 Time::Piece strptime 解析微秒?

    我有一个时间戳 看起来像25 OCT 10 04 11 00 000000 AM 我正在尝试将其转换为时间格式 Time Piece gt strptime 25 OCT 10 04 11 00 000000 AM d b y I M S
  • 从 HoA 值中获取独特元素并打印

    我有一个 HoA 其中包含某些值 我只需要 HoA 中的独特元素 预期结果 Key 1 Element ABC DEF Key 2 Element XYZ RST Key 3 Element LMN 下面是我的脚本 usr bin perl
  • iPhone 存储图像的最佳方式

    我正在开发一个应用程序 需要缓存一些来自网络的图像 图像可能是 100x100 我只需要知道哪个更好 将图像作为文件存储在 iPhone 文件系统中 将它们作为 blob 与已保存在数据库中的其他数据一起存储在 sqlite 数据库中 感谢
  • 如果新文件不存在则写入新文件,如果存在则追加到文件

    我有一个程序可以写入用户的highscore到一个文本文件 该文件由用户选择时命名playername 如果具有该特定用户名的文件已经存在 那么程序应该附加到该文件 以便您可以看到多个highscore 如果具有该用户名的文件不存在 例如
  • Log4Perl 将多个程序的日志记录捆绑到一个日志中

    CPAN 上是否有任何 Logger 它允许我将多个程序的日志捆绑到一个文件中 并在两个程序同时运行并并行调用 log4Perl 时同步并行日志记录 背景是我使用一个自定义附加程序来写入电子邮件 我想将所有电子邮件捆绑在一个文件中作为备份
  • mod_perl 无法看到 /tmp 中的文件

    我有一些 mod perl 代码试图访问 tmp 下的文件 但它抛出 没有这样的文件或目录 错误 我在代码中添加了一个 ls al tmp 来查看 Perl 在目录中看到的内容 它只给了我 和 drwxrwxrwt 2 root root
  • 在 Perl 中查找标量变量的数据类型

    我有一个接受用户输入的函数 输入可以是整数 浮点数或字符串 我有三个重载函数 应该根据输入数据的数据类型调用它们 例如 如果用户输入一个整数 比如100 则应该调用具有整数参数的函数 如果用户输入字符串 例如 100 则应调用具有字符串参数

随机推荐

  • Burp Suite 功能介绍

    Target 获取目标应用程序的详细信息 Proxy Proxy是BurpSuite最核心的部分 通过拦截 查看和修改所有的请求和响应您的浏览器与目标Web服务器之间传递 Spider Burp Spider 能使你清楚地了解到一个 web
  • ps保存html和图像格式不显示,photoshop保存web格式不能显示该怎样解决

    在photoshop里面处理完图片保存有的时候会选择web格式 可是保存完了发现不能显示怎么解决 尝试了多次还没有找到解决方法的你 可以看看小编为你推荐的关于保存web格式不能显示的解决方法 想必会对你有帮助 photoshop保存web格
  • MySQL的安装配置

    在Windows系统上配置MySQL数据库 您可以按照以下步骤进行 下载安装MySQL 在官方网站上下载MySQL安装程序 并按照提示安装MySQL 建议下载最新版本的MySQL 以获取更好的性能和安全性 安装界面选择服务器端 设置MySQ
  • #pragma once 与 #ifndef...#define...#endif的比较

    C 中防止头文件被多次include 的常见方式有 用 ifndef define endif 宏 ifndef MYHEAD H define MYHEAD H Here is my class endif 这个是C 语言相关 这是C 语
  • WebFlux使用ServerHttpRequest出现找不到构造

    使用ServerHttpRequest异常 异常 java lang IllegalStateException No primary or single public constructor found for interface org
  • 掌握Python的X篇_35_用Python为美女打码_图像库Pillow

    本篇将会介绍python中的一个图像库Pillow 文章目录 1 Pillow与PIL的关系 2 调整大小 3 加滤镜 4 剪裁 5 生成验证码 1 Pillow与PIL的关系 我们在网上搜python的图像库的话 可能搜到的时PIL 实际
  • snipaste使用教程介绍

    snipaste是一个简单但强大的截图工具 但是很多用户下载之后都不知道怎么用 今天小编带来的内容就是snipaste使用方法教程 Win10纯净版 Win10 64位纯净版 Win10纯净精简版系统下载 系统部落 1 打开Snipaste
  • zynq开发,在SDK中自动生成的IP核驱动文件出现错误解决办法

    ZYNQ开发 在SDK中自动生成的IP核驱动文件出现错误解决办法 zynq开发 在SDK中出现IP驱动文件报错 寻找错误原因 对比 为什么出现这种情况 Block Design查看问题 最后 zynq开发 在SDK中出现IP驱动文件报错 报
  • STM32CUBEMX+FreeRTOS开发笔记3-----按键选择任务挂起

    按键初始化 和上次一样 复制上次的串口文件 改成keytask 打开cubemx工程 将PA3设置成中断线3模式 并将标签改为key1 使能中断线3 添加按键任务 生成代码即可 进入工程 查看中断线3函数 找到callback函数 因为中断
  • 《ESP32-Arduino》LVGL之输入设备详解及实例(触摸屏,实体按键,编码器,多功能按键)

    前言 好久没写博客了 一方面是平时着实没有时间 另一方面是知识还是欠缺 实在没啥技术拿得出手 其实更主要的还是懒 最近玩的比较多的就是LVGL了 自己也是做了几个小项目 后续考虑开源 考虑到网上LVGL入门教程还是比较少 特此出来写篇博客
  • Android移动开发-在Android项目里调用基于百度地图API实现定位

    基于地理位置服务的Android平台的开发对Android移动开发来说是非常重要的 基于地理位置服务的Android平台的开发是主要用于Android系统作为载体 我们可以利用定位出的位置进行许多丰富多彩的操作 比如说天气预报程序可以根据用
  • 【精华】AIGC专栏-Text/Img/Video/audio

    一 LLM专栏 大模型相关技术原理以及实战经验 liguodongiot llm action 1 ColossalAI 1 参考资料 700 亿参数 LLaMA2 训练加速 195 基础大模型最佳实践再升级 2 开源地址 https gi
  • 单片机晶振上两个电容的作用

    这两个电容叫晶振的负载电容 分别接在晶振的两个脚上和对地的电容 一般在几十皮发 它会影响到晶振的谐振频率和输出幅度 一般订购晶振时候供货方会问你负载电容是多少 晶振的负载电容 Cd Cg Cd Cg Cic C式中Cd Cg为分别接在晶振的
  • Qt无法解析的外部命令

    程序编译没有问题 上传svn后 下载整个项目后 编译错误 提示多个无法解析的外部的命令 检查的要点 程序的编译环境是否正确 程序需要的库的路径是否正确 查看库的路径是否正确时 需要查看 pro文件 但是上传svn时这些文件的内容肯定是一样的
  • 跑了这么久,汽车后市场电商终于快分出胜负了?

    图片来自网络 文 魏启扬 来源 智能相对论 ID aixdlun 汽车后市场电商是蓝海 也是火海 2015年前后 一大批创业者以互联网创新的方式闯入汽车后市场赛道 随便例举几个名字 博湃养车 E洗车 i保养 是不是都有些眼熟 其中有一些没啥
  • java动态代码方案

    方案一 https vimsky com examples detail java class javax script Invocable html import javax script Invocable 导入依赖的package包
  • PostMan的安装和使用教程

    postman的下载 官网 https www getpostman com downloads 创建账号或者用谷歌浏览器账号登录 一个demo了解一下 我做的是一个app 后台使用java做的 app通过ajax来请求后台 但是我不知道后
  • gcc编译步骤

    可以一步一步得到对应运行结果 o 其实跟重命名差不多
  • Java Collections.replaceAll()方法具有什么功能呢?

    转自 Java Collections replaceAll 方法具有什么功能呢 下文笔者讲述Collections replaceAll 方法的功能简介说明 如下所示 Collections replaceAll 方法的功能 用于替换集合
  • CPAN常见问题集

    CPAN常见问题集 想要更详细的关于perl的文档 你应该到这里来看看 www perl com 如果想看perl FAQ 可以到这里来 perlfaq cpan org 1998 2001 Elaine Ashton