perl csv追加列问题

perl csv追加列问题,perl,csv,Perl,Csv,我应该如何使用perl在csv文件末尾附加一个额外的列?我不能使用Text::CSV,因为我使用的是5.8.8版,并且软件包没有安装在这里。我无法升级到更新的perl版本。我首先将几个较小的CSV文件合并成一个文件,然后我需要在最后一个文件中添加一个额外的列。我已将最终文件的句柄声明为SUB 以下是我的代码片段: my $file = "/tmp/Sub_test_".$row.".csv"; # the $row is in a loop..so it comes as 1,2

我应该如何使用perl在csv文件末尾附加一个额外的列?我不能使用Text::CSV,因为我使用的是5.8.8版,并且软件包没有安装在这里。我无法升级到更新的perl版本。我首先将几个较小的CSV文件合并成一个文件,然后我需要在最后一个文件中添加一个额外的列。我已将最终文件的句柄声明为SUB

以下是我的代码片段:

my $file = "/tmp/Sub_test_".$row.".csv";
        # the $row is in a loop..so it comes as 1,2 etc.
        open my $fh, "<", $file;
        <$fh> unless $file eq "/tmp/Sub_test_1.csv";
        print SUB while <$fh>;

我需要添加一个额外的列,其中包含页眉计数,值应为$row。

是否只是要添加的行计数

这将在第一行追加、count和$。这是其余的行号

然后试试看

$ perl -e 'while (<>){chomp;if ($. ==1){print "$_,count\n"} else {print "$_,".($.-1)."\n"}}' your.csv


tmp.csv
one,two,three
4,5,6
2,3,4
6,7,1

$ perl -e 'while (<>){chomp;if ($. ==1){print "$_,count\n"} else {print "$_,".($.-1)."\n"}}' tmp.csv

one,two,three,count
4,5,6,1
2,3,4,2
6,7,1,3

为什么不让系统管理员安装Text::CSV?如果你想切断Perl的大部分功能,那么使用Perl有什么意义呢?是的,这不会很快发生。他们会在以后升级整个系统,所以我坚持使用旧版本:公司只能通过程序员允许的方式来处理这样的事情。如果您需要未安装的模块,请尝试使用local::lib,因为我无法安装新模块。实际上,我只想添加$row值。上面的代码可以工作。非常感谢。但是,我需要它反映在csv文件本身中,这不会发生。你能读取旧文件并写入新文件吗?完成后,可以重命名新文件。所以你会有类似于while{chomp;if$.==1{print NEW$\u,count\n}或者{print NEW$\u,.$-1.\n}的东西是的,我就是这么做的。谢谢你的帮助。