Пакет Perl Tie :: CSV_File - PullRequest
       2

Пакет Perl Tie :: CSV_File

2 голосов
/ 11 августа 2011

Я пытаюсь написать некоторый Perl-код для извлечения информации из файла CSV. Прежде чем я начал писать код с нуля, я прогуглил и проверил CPAN, чтобы увидеть, какие существуют Perl-модули, которые могут помочь и натолкнуться на пакет Tie::CSV_File.

Мой вопрос / проблема заключается в следующем: я не могу установить его из CPAN, потому что тесты для этого модуля имеют множество ошибок. Я не могу найти ничего, что объясняет, как обойти это для этого модуля. Я даже пытался загрузить модуль напрямую и собрать его, но эти ошибки все еще есть. Я использовал Perl 5.10, 5.12 и 5.14, но ошибки все еще есть и, видимо, все те же.

Кто-нибудь знает, что происходит?

У кого-нибудь есть хорошая альтернатива Tie::CSV_File? Я хотел использовать его по той причине, что он позволит вам открыть файл CSV и обращаться с ним как с массивом, обращаясь к каждой из ячеек напрямую, обращаясь к ним с помощью синтаксиса двумерного массива.

Заранее благодарим вас за понимание.

Редактировать # 1 Когда я пытаюсь установить Tie :: CSV_File, я получаю следующие сообщения об ошибках:

    Files=12, Tests=10,  1 wallclock secs ( 0.05 usr  0.02 sys +  0.79 cusr  0.12 csys =  0.98 CPU)
Result: FAIL
Failed 10/12 test programs. 4/10 subtests failed.
make: *** [test_dynamic] Error 255
  BIGJ/Tie-CSV_File-0.21.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports BIGJ/Tie-CSV_File-0.21.tar.gz
Running make install
  make test had returned bad status, won't install without force
Failed during this command:
 BIGJ/Tie-CSV_File-0.21.tar.gz                : make_test NO

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Если это утешит Tie::CSV_File, похоже, не удастся для всех ! Я посмотрю вокруг и попытаюсь предоставить некоторые альтернативы. На данный момент вы можете попробовать установить предыдущую версию, которая, кажется, работает лучше. Не берите в голову, кажется, что все тесты проваливаются для версий Perl> 5.8.

Обновление: я попытался пропатчить Tie::CSV_File, чтобы исправить его недостатки. Я сбил с ног несколько проблем, но не смог исправить это к своему удовлетворению. Самый близкий другой модуль CPAN - Tie::Array::DBD, хотя он утверждает, что имеет очень низкую производительность для CSV.

Я смоделировал свою собственную попытку создания массива CSV с поддержкой tie и теперь выпустил его для CPAN под названием Tie::Array::CSV и доступен на github .

0 голосов
/ 11 августа 2011

Я работаю с большим количеством файлов извлечения CSV-файлов.Альтернативой использованию Tie :: CSV_FILE является просто:

open my $file, '<', "filename.csv"; 

while(defined ( my $line = <$file> ) ){ 
  my @lineArray = split ',', $line; 
  my $firstValue  = $lineArray[0];
  my $secondValue = $lineArray[1]; 
} 
...