【问题标题】:Perl, ppm, and trying to download module dependenciesPerl、ppm 和尝试下载模块依赖项
【发布时间】:2020-12-04 05:19:43
【问题描述】:

我安装了 Strawberry Perl 和 PPM。我对从 CPAN 手动安装模块并不陌生,但最近遇到了一种情况,即一个模块需要一个依赖项,而那个依赖项需要 20 个..

所以我决定试一试 PPM(因为它会自动安装依赖项,对吗?),我最初认为它像 Ruby Gems 一样工作。我加载并输入:

ppm> install OLE::Storage_Lite

来自这个tutorial。

然后我遇到了“找不到 PPDfile”的问题。

所以我关注了这个tutorial,它会引导您连接到存储库的链接,但它仍然找不到 PPD 文件。

我的问题是:谁能帮我加载一个 Perl 模块,以便我可以读写 Excel 文件!?

已解决:我的问题原来是工作中的代理服务器不允许我通过 PPM 下载包。

【问题讨论】:

  • cpan客户端也会自动为你安装依赖;您只需要设置正确的配置值。
  • Ether: Strawberry 默认有这个设置,在其他 dist 中设置为'ask'。

标签: perl


【解决方案1】:

两件事:

  1. CPAN 也可以安装依赖! :) 只需在命令行上执行 cpan install My::Module 即可安装您的模块及其依赖项。
  2. 请改用Win32::OLE。

Win32::OLE 是在 windows 中与 COM 和 OLE 对象交互的标准模块,效果很好。它已经包含在 Strawberry Perl 中,而且效果很好!您只需要查看有关 Perl 和“OLE 自动化”的文档。它看起来像这样:

use strict;
use warnings;
use Win32::OLE; 
use Win32::OLE::Const 'Microsoft Excel';  # brin in Excel constants

my $excel = Win32::OLE->new('Excel.Application') or die "oops\n";

事实上,如果您查看 CPAN 上的 Win32::OLE 文档,您会发现那里有几个关于如何让 Excel 自动化工作的示例。

之后,快速搜索“Excel OLE 自动化”将弹出大量教程,向您展示您需要调用的所有方法和 Excel 的怪癖。但在那之后,它非常简单!一些例子:

my $sheet = $excel->Worksheets(1);  #Gets the first worksheet, 1 indexed
$sheet->Cells($row, $col); # do something to a cell 
$sheet->Columns("A:D");    # do something to some columns
$sheet->Rows($row_number); # do something to a row

显然还有更多(excel API 非常庞大),但这应该可以帮助您入门。

【讨论】:

  • 这应该很明显,但是使用OLE 需要您安装 Excel。如果您在 Windows 上进行开发,这不太可能成为问题。 Spreadsheet::WriteExcel 允许您在不安装 Excel 的情况下创建 Excel 电子表格——即使是从其他平台。
  • 啊,对我来说一点也不明显。真可惜。就个人而言,出于不兼容的原因,我会犹豫在 excel 本身之外编写 excel 文档。由于很多原因,读取和写入 Excel 是一种痛苦……Lotus 1-2-3 兼容性只是其中之一。 :)
  • 大家好。我的问题原来是工作中的代理服务器不允许我通过 PPM 下载包。我什至不能使用 wget。但是,我会将此解决方案标记为正确,因为它非常有见地。
  • 我只想说 Win32::OLE 是一个非常糟糕的模块。它很慢,很旧,几乎没有维护。我使用它的唯一原因是因为我工作的代理服务器不允许我使用 ppm 或 cpan,而且它几乎不需要依赖。因此,如果有人阅读此页面,我希望他们在使用之前阅读此评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 2020-10-30
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
相关资源
最近更新 更多