PAR::Packer 如何工作?

2023-12-20

我正在使用 PAR::Packer,这个问题突然出现在我的脑海中。 PAR::Packer 在 Perl 中如何工作?真的吗compilePerl 脚本到 .exe 就像 g++ 将 C++ 源代码编译到 .exe 一样,还是像 Python 中的 py2exe 一样工作,将解释器和脚本打包到 .exe 中?


为了绝对清楚地说明这一点:

  • 类似的工具PAR::Packer https://metacpan.org/module/pp不要“编译”你的 Perl 脚本。他们将 perl 解释器与源文件和任何所需的模块捆绑在一起,形成一个庞大的可执行文件。当它运行时,原始源代码被提取并提供给附带的 perl。

    这工作得相当好,但并没有提高速度(相反......)。这only优点是您可以将程序作为单个(尽管相当大)文件分发,而无需依赖项。

  • 有一个非常实验性的工具,叫做perlcc它能够将一些 Perl 程序转换为 C 或 Perl 字节码序列化。作为the docs https://metacpan.org/module/perlcc put it:

    不保证以这种方式生成的代码能够工作。应考虑整个 codegen 套件(包括 perlcc)very实验性的。强烈建议不要将其用于生产目的。

    这是因为Perl语言不支持静态编译。它需要能够在主执行阶段发生的同一会话期间解析某些动态功能期间执行代码。

还有其他商业工具,通常与 PAR::Packer(创建胖可执行文件)属于同一类别。

摘要:如果您想要单个可执行文件,请使用 PAR::Packer。如果您想要速度,请内联一些 C (或使用 XS)。没有任何工具可以将所有 Perl 脚本编译为机器代码。

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

PAR::Packer 如何工作? 的相关文章

  • Spring Boot可执行jar结构

    我正在尝试运行 Spring Boot 示例应用程序 我在 webapp 文件夹下的 images 文件夹中添加了几张图像 与 WEB INF 同一级别 我创建了可执行 jar 这些图像在网页上正确显示 但是 我很困惑 可执行 jar 中的
  • 使用 Pyinstaller 将 Django 项目转换为 .exe - 缺少模块、ModuleNotFoundError

    我正在使用 Pyinstaller 将 Django 项目转换为 exe 文件 我希望能够只需单击一个图标并在浏览器中打开该项目 这是我的文件夹结构 proj pycache proj pycache init py manage py D
  • 首选的跨平台 IPC Perl 模块是什么?

    我想创建一个简单的 IO 对象 它代表一个向另一个程序打开的管道 我可以在应用程序运行时定期写入另一个程序的 STDIN 我希望它是防弹的 因为它可以捕获所有错误 并且是跨平台的 我能找到的最佳选择是 open sub io read lo
  • 如何使用 Perl 从纯文本中提取 URL?

    我需要 Perl 正则表达式来解析纯文本输入并将所有链接转换为有效的 HTML HREF 链接 我已经尝试了在网上找到的 10 个不同版本 但没有一个可以正常工作 我还测试了 StackOverflow 上发布的其他解决方案 但似乎都不起作
  • 在 Perl 中,如何从父进程向子进程发送消息(或信号),反之亦然?

    我正在编写一个管理多进程的程序 这就是我所做的 而且效果很好 但现在 我想将消息从子进程发送到父进程 反之亦然 从父进程到子进程 你知道最好的方法吗 你知道我所做的是否是我想要的正确方法 从子进程到父进程发送消息 信号或共享内存 反之亦然
  • 在 GitHub 上托管可执行文件?

    我想将可执行文件与我的源代码一起分发 我的源代码全部整齐地托管在 GitHub 上 是否可以将可执行文件和安装程序添加到我的 GitHub 项目页面 而不将它们添加到我的 git 存储库 请注意 由于某种原因 GitHub 停止了此功能 请
  • 如何有效地计算 Perl 中覆盖给定范围的范围?

    我有一个大约 30k 范围的数据库 每个范围都作为一对起点和终点给出 12 80 34 60 34 9000 76 743 我想编写一个 Perl 子例程来表示一个范围 不是来自数据库 并返回数据库中完全 包含 给定范围的范围数 例如 如果
  • WWW::Mechanize::Firefox - 如何打开多个选项卡

    我想打开两个单独的选项卡并在 Firefox 中保持打开状态 我在用WWW Mechanize Firefox 请找到下面的代码 usr bin perl w use strict use WWW Mechanize Firefox my
  • 哪一个代表null? undef 或空字符串

    我想插入null在表的一列中 哪一个代表null undef或空字符串 应该使用哪一种 为什么 我知道关于defined我可以检查一下 但我更多的是从数据库的角度来看 代表哪一个null更合适吗 Update 我在用DBI module D
  • 我的 Perl 脚本中的 findnodes 语句有什么问题?

    我有一个简单的 xml 文件 如下所示
  • 如何拆分一行并重新排列其元素?

    我在一行中有一些数据 如下所示 abc edf xyz rfg yeg udh 我想呈现如下数据 abc xyz yeg edf rfg udh 以便打印备用字段并用换行符分隔 有没有这样的衬里 下列awk脚本可以做到这一点 gt echo
  • 编写脚本时,#!/usr/bin/perl 和 #!/usr/bin/env perl 有什么区别?

    显然 这同样适用于用 python bash sh 等替代 perl 昆汀下面的答案显然是正确的 所以我接受了它 但我想我实际上的意思是 两种使用 的方式的优点和缺点是什么 调用 perl python bash 作为脚本的解释器 有人提到
  • 使用 perl 比较两个 Unicode 字符串

    当我运行以下代码时 它不会进入 在此处执行某些操作 部分 my a P 3 lt 1 my b P 3 lt 1 if a ne b do something here 还有另一种方法可以将 Unicode 字符串与 perl 进行比较吗
  • 使用 Perl 计算字符串中的连续字符数

    我有一个包含多个连续字符序列的字符串 例如 aaabbcccdddd 我想将其表示为 a3b2c3d4 到目前为止 我已经想出了这个 usr bin perl str aaabbcccdddd str s 1 1 g print str n
  • 多个与单个 Catalyst 应用程序

    我有多个作为 FCGI 运行的 Catalyst 应用程序 将它们整合为具有多个控制器的单个控制器是否有好处 Thanks Simone 内存 大概吧 我认为每台服务器至少要保留 15MB 左右 因此如果您在 3 台服务器上运行 3 个应用
  • 使用 Getopt::Long 解析参数的最简洁方法

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

    是否有用于 AES 的纯 Perl 模块 地穴 Rijndael PP http search cpan org dist Crypt Rijndael PP Rijndael 是底层算法AES https secure wikimedia
  • Perl 中字符串之间的字符匹配计数

    我有一个字符串 例如字符串 1 需要与另一个字符串 字符串 2 匹配 两个字符串的长度相同并且不区分大小写 我想打印两个字符串之间的字符匹配数 E g String 1 stranger String 2 strangem Match co
  • 从日志尾部提取匹配行后退出

    我使用范围运算符来提取日志文件的一部分 例如 tail F logfile perl ne print if b d 现在 一旦提取的部分匹配 我就尝试退出该过程 我尝试过 tail F logfile perl ne print if b
  • 将参数传递给调试器中的 perl 文件并在系统执行的文件中设置断点

    因此 我使用 perl d file pl 在 perl 调试器中运行一个文件 但 file pl 也应该接受参数 如何向 file pl 提供参数 还有一个问题 file pl 中有这一行 system file2 pl 如果 file2

随机推荐

  • PHP 从循环生成 Array()? [复制]

    这个问题在这里已经有答案了 我刚刚写了这篇文章 这是将数组添加到预先存在的数组的最有效方法吗 c 4 i 1 myarray array while i lt c array push myarray array key gt value
  • 如何从自定义按钮触发 Facebook Like 按钮?

    我创建了一个自定义的 Facebook Like 按钮 如何让我点击按钮时 会触发 Facebook 提供的点赞按钮 如下所示 根据脸书政策 https developers facebook com policy socialplugin
  • 设置变量时 jQuery .val() 不起作用

    如果我有这样的输入
  • HID 设备的 INF 文件 - 设置名称和图标

    我正在寻找为 HID 设备 具有自定义 VID PID 创建一个 inf 文件 我只想用我们的字符串替换我们设备的 HID 兼容设备 和 USB 输入设备 字符串 我知道这需要 Microsoft 签名 但是有一个很好的示例说明如何执行此操
  • 将 RSS feed 输出为 html?

    是否有任何免费的 php javascript 库可以帮助将 RSS feed 显示为 html 在我看来简单派 http simplepie org是最好的 RSS 解析器之一 这是一个例子 require once simplepie
  • 如果我将所有图像保留在drawable-hdpi 文件夹中会发生什么?

    我的所有图像都在drawable hdpi 文件夹中 我完成了所有屏幕尺寸的所有布局 但我忘记将图像放入drawable mdpi文件夹和drawable ldpi文件夹中 如果具有 mdpi 屏幕密度的手机要下载我的应用程序 它会只使用
  • 在不知道高度宽度的情况下用背景图像填充 SVG 路径

    我能够创建一个包含填充 SVG 路径的 SVG 图像 正如这个问题中已经提到的 使用背景图像填充 SVG 路径元素 https stackoverflow com questions 3796025 fill svg path elemen
  • 如何使用7z SDK压缩和解压文件

    根据这个链接如何使用 NET 创建 7 Zip 档案 https stackoverflow com questions 222030 how do i create 7 zip archives with net WOPR 告诉我们如何使
  • 为什么 :host 选择器只能在带有 platform.js 的 chrome 中工作?

    关于如何设计 Web 组件的样式有很多讨论 例如 http www html5rocks com en tutorials webcomponents shadowdom 201 http www html5rocks com en tut
  • 方案:何时使用 let、let* 和 letrec? [复制]

    这个问题在这里已经有答案了 let let 和 letrec 之间有什么区别 请给出详尽的解释和例子 你最好的选择是阅读R5RS 官方说明 http www schemers org Documents Standards R5RS HTM
  • 如何从app.config获取这个配置值?

    我的朋友有以下 app config 他想要获得的价值address 怎么做
  • 如何将 Ransack 搜索保存到数据库?

    我正在尝试将 Ransack 搜索保存到数据库中 我相信我应该能够存储params q 值 然后当我想调用搜索时将其附加到搜索 URL 我不知道如何保存params q 不过 值 Ransack 创建的 URL 是这样的 http site
  • 极限分片:每个用户一个 SQLite 数据库

    我正在开发一个介于电子邮件服务和社交网络之间的网络应用程序 我觉得它未来有潜力变得非常大 所以我担心可扩展性 我决定为每个活动用户创建一个单独的 SQLite 数据库 每个 分片 一个活动用户 而不是使用一个集中式 MySQL InnoDB
  • 如何使用log4j2删除旧日志

    仅供参考 我已经在网上搜索了很多文档 我使用的是storm 0 10 0 beta1 Storm中log4j2的配置文件是worker xml 现在 我尝试使用log4j2 我正在寻找删除旧日志的方法 但我找不到 部分配置如下
  • 在“for in”循环中访问迭代器

    根据我的理解 当运行如下代码时 for i in MyObject print i 我的对象 iter 函数运行 for 循环使用它返回的迭代器来运行循环 是否可以在循环中访问此迭代器对象 它是一个隐藏的局部变量 还是类似的东西 我想做以下
  • UITextView 加载时未滚动到顶部

    当我的文本未填充 UITextView 时 它会按预期滚动到顶部 当文本超出屏幕所能容纳的范围时 UITextView 会滚动到文本的中间 而不是顶部 以下是一些可能相关的详细信息 在 viewDidLoad 中在 UITextView 的
  • 在 Django 模板中显示反向多对多

    我正在为小型销售 CRM 应用程序创建警报 通知系统 我有一个 Lead Contact 模型 用于存储客户的姓名 地址等 以及一个 Contact Notifier 模型 用于跟踪首次联系客户的时间 最后一次联系以及我们何时进行下一步联系
  • Python Tkinter 根标题不起作用

    我似乎无法给我的窗口命名 他们都有标题 Tk 我相信我的代码是正确的 所以如果这是错误的 请纠正我 from Tkinter import root Tk root title Title root mainloop 标题仍然是Tk 我可以
  • 为什么VS代码中的这个问题匹配器不起作用?

    为什么我的 ProblemMatcher 不起作用 我对正则表达式非常确定 但它没有报告任何问题 即使标准输出上有一些问题 the matcher problemMatcher owner typescript fileLocation r
  • PAR::Packer 如何工作?

    我正在使用 PAR Packer 这个问题突然出现在我的脑海中 PAR Packer 在 Perl 中如何工作 真的吗compilePerl 脚本到 exe 就像 g 将 C 源代码编译到 exe 一样 还是像 Python 中的 py2e