2012-03-14 3 views
1

Идея состоит в том, что я должен прочитать каждую строку файла (CSV) и запомнить определенную информацию в определенном месте как переменную. пример:запомнить часть строки в переменной

a;b;c;d;e;f123;g;h;i;j 

Я знаю, как читать каждую строку, но проблема заключается в том, чтобы сохранить информацию, где f123 является и сохранить его в переменной. Есть идеи? Переменная должна меняться в каждом цикле (когда проверяется другая строка, переменная должна меняться).

ответ

1
my @list = split ";", $line; 
my $value = $list[5]; 
+0

Чистый и простой, отличный:> Thx – f00sa

+0

@ f00sa 'my $ value = (split /; /, $ line) [5]' Но если вы можете процитировать полуколоны, это сломается с помощью ввода, такого как: 'a; b; c;" Цитата: У меня есть * много здравого смысла, я просто не хочу его использовать. "; e; f123; i; j'. Использование CSV-модуля, такого как Text :: CSV, является более безопасным вариантом. – TLP

+0

@ f00sa - в случае цикла вы можете нажать '$ list [5]' в массиве. 'Push @ arr, $ list [5];' и затем вы можете напечатать этот массив. –

2

Я предлагаю вам использовать модуль CPAN Text::CSV_XS

Он может использовать любой заданный пользователь символы в качестве разделителей, разделители и побегов, он помогает справиться с любыми файлами CSV.

Смежные вопросы