我正在尝试编写一个子例程,它将接受两个参数,afilename
和column name
CSV 文件内部。该子例程将搜索第二个参数(列名)并从 CSV 文件中删除该列(或多个列),然后返回删除了参数的 CSV 文件。
我觉得我已经完成了这个子的前半部分(打开文件,检索标题和值),但我似乎找不到在 CSV 文件中搜索用户输入的字符串并删除它的方法整列。有任何想法吗?这是我到目前为止所拥有的。
sub remove_columns {
my @Para = @_;
my $args = @Para;
die "Insufficent arguments\n" if ($nargs < 2);
open file, $file
$header = <file>;
chomp $header;
my @hdr = split ',',$header;
while (my $line = <file>){
chomp $line;
my @vals = split ',',$line;
#hash that will allow me to access column name and values quickly
my %h;
for (my $i=0; $i<=$#hdr;$i++){
$h{$hdr[$i]}=$i;
}
....
}
这里是搜索和删除的地方。我一直在考虑如何解决这个问题;我要修改的 CSV 文件会很大,所以速度是一个因素,但我似乎想不出一个好方法来解决这个问题。我是 Perl 的新手,所以我有点挣扎。