无法执行perl脚本

时间:2012-06-15 11:31:22

标签: perl

我是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__

有没有人有任何想法?

2 个答案:

答案 0 :(得分:3)

以下是Oleg的回答:

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

simbabque @盒:〜> perl xsltest.pl    simbabque @盒:〜>

现在,如果您不确定工作目录的位置,请编辑如下代码:

#!/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并单击打开,而不是选择

答案 1 :(得分:1)

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