filename
aとcolumn name
CSV ファイル内の2 つの引数を取るサブルーチンを作成しようとしています。サブルーチンは 2 番目の引数 (列名) を検索し、その列 (または複数の列) を 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を初めて使用するので、少し苦労しています。