CSV 파일 내에 filename
과 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에 익숙하지 않아 조금 어려움을 겪고있다.