如何从文件创建一个值到所需的格式并使用perl分配给变量?

时间:2017-04-27 07:45:36

标签: perl

有人可以通过Perl告诉我如何实现以下目标。

我有一个CVS文件,其值如下所示。

I / P:

符号,A,B,C,d,E,F

66,0.8500,.8500,1.1600,1.1600

O / P:

[['符号','A','B','C','D','E','F'], [ '66', '1.1600', '1.1600' '8500' '8500'。]];

并将其分配给变量。

我怎样才能通过Perl脚本实现这一目标。

$sts = open( CSV, "< File.csv" );

while (<CSV>) {

   $csv = $_;

   chomp($csv);

   @csv_rcd = split( ',', $csv );
   foreach $cell (@csv_rcd) {
      push @rowdata, $cell;
   }

   push @$somedata, @rowdata;

}

但上面的代码没有产生所需的o / p。

1 个答案:

答案 0 :(得分:1)

use strict;
use Data::Dumper;

my $somedata;
while (my $csv = <DATA>) {
    chomp $csv;
    push @$somedata, [ split (',' , $csv)];
}
print Dumper($somedata);
__DATA__
Symbol,A,B,C,D,E,F
66,.8500,.8500,1.1600,1.1600

以下是使用PDF :: Table

的完整示例
use PDF::API2;
use PDF::Table;

my $somedata;
while (my $csv = <DATA>) {
    chomp $csv;
    push @$somedata, [ split (',' , $csv)];
}

my $pdftable = new PDF::Table;
 my $pdf = new PDF::API2(-file => "table_of_lorem.pdf");
 my $page = $pdf->page;

$pdftable->table($pdf, $page, $somedata, x => 50, w => 495, start_y => 500, start_h => 300,
    padding => 5, background_color_odd => 'gray', background_color_even => 'lightblue');

$pdf->saveas();

__DATA__
Symbol,A,B,C,D,E,F
66,.8500,.8500,1.1600,1.1600