【问题标题】:unable to execute perl script无法执行 perl 脚本
【发布时间】:2012-06-15 20:32:13
【问题描述】:

我是 Perl 新手,想使用 Excel 绘制图表。我找到了一些代码,但是当我尝试执行它时,它只在命令提示符上显示“按任意键继续...”。该代码可由其他人执行。我还尝试下载 Excel 编写器包并将它们放在 lib 文件夹中,但它根本没有执行。发现代码绝对可执行。

#!/usr/bin/perl
use strict;
use warnings;
use Excel::Writer::XLSX;

my $workbook  = Excel::Writer::XLSX->new('chart.xlsx');
my $worksheet = $workbook->add_worksheet();

# Add the worksheet data the chart refers to.
my $data = [
    ['Category', 2, 3, 4, 5, 6, 7],
    ['Value',    1, 4, 5, 2, 1, 5],
];
$worksheet->write('A1', $data);

# Add a worksheet chart.
my $chart = $workbook->add_chart(type => 'column');

# Configure the chart.
$chart->add_series(
    categories => '=Sheet1!$A$2:$A$7',
    values     => '=Sheet1!$B$2:$B$7',
);
__END__

有人知道吗?

【问题讨论】:

  • 你看到它应该创建的文件了吗?
  • “将它们放在 lib 文件夹中” - 这不是安装 perl 包的正确方法。(尽管如果出现问题,它必须看到一些错误消息)做一些谷歌搜索。跨度>
  • “可由他人执行”究竟是什么意思?你得到了在另一台机器上创建的 Excel 文件?
  • 代码在我的机器上运行,刚刚通过 cpan 安装了 Excel::Writer::XLSX 并且运行良好

标签: perl


【解决方案1】:

奥列格的回答是这样的:

根据您所使用的操作系统,您调用 perl 程序的方式可能会有所不同。这就是我的样子。

simbabque@box:~> perl xsltest.pl simbabque@box:~>

现在,如果您不确定您的工作目录在哪里,请像这样编辑代码:

#!/usr/bin/perl
use strict;
use warnings;
use Excel::Writer::XLSX;
use Cwd;                 # <--- new line!
print cwd(), "\n";       # <--- new line!

现在,当您运行程序时,它应该会打印出如下内容:

simbabque@box:~> perl xsltest.pl 
/home/simbabque/
simbabque@box:~>

就我而言,工作目录是我调用 perl 的目录。不过,它可能是另一个。

虽然它不会在屏幕上打印任何内容,但它应该在我的工作目录中创建了名为chart.xlsx 的文件。我可以在命令行中使用ls 查找它,或者说file chart.xlsx 以查看它是否已编入Excel 文件。

simbabque@box:~> file chart.xlsx
chart.xlsx: Zip archive data, at least v2.0 to extract

我现在可以在 Excel 或 Libre Office 中打开它。


如果您使用的是 Windows,请打开资源管理器并将其指向 cwd 函数所说的位置。在那里,您可以双击文件以在 Excel 中打开它。如果它与程序是同一个文件夹,您也可以使用文本编辑器的打开对话框,右键单击 chart.xlsx 并单击 open 而不是 select

【讨论】:

    【解决方案2】:

    它正在执行。您在某处的文件中构建 Excel 表格,而无需在屏幕上打印任何内容。当脚本成功完成时,系统会打印“按任意键继续...”提示。如果你不确定你的脚本工作目录在哪里,你可以使用Cwd 模块来检查它。还要确保工作目录对你是可写的。

    【讨论】:

    • 我不明白.. 对不起。我对这个程序很陌生。
    猜你喜欢
    • 2023-04-04
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多