Я застрял в проблеме, при которой я анализирую CSV-файл. Файл CSV выглядит как -
CPU Name,DISABLE,Memory,Encoding,Extra Encoding
,b,d,,
String1,YES,1TB,Enabled,Enabled
String2,NO,1TB,Enabled,Enabled
String3,YES,1TB,Enabled,Enabled
Я хочу захватить первые две строки в двух разных массивах. Код, который я использую для этого -
my $row_no =0;
while(my $row=<$fi>){
chomp($row);
$row=~ s/\A\s+//g;
$row=~s/\R//g;
#say $row;
if($row_no==0)
{
#say $row;
my @name_initial = split(',',$row);
say length(@name_initial);
say @name_initial;
}
elsif($row_no==1)
{
#say $row;
@data_type_initial =split(',',$row);
say length(@data_type_initial);
say @data_type_initial;
}
$row_no++;
}
Теперь я сформировал два массива из двух верхних строк в файле (@name_initial и @data_type_initial соответственно). Когда я печатаю этот массив, я вижу все 5 значений, но когда я печатаю длину массива, он показывает длину каждый массив как 1. Когда я печатаю элемент, используя индекс массивов, я нахожу каждый элемент на месте, тогда почему он показывает длину как 1. Также второй массив, который сформирован из второй строки CSV-файла, печатается как «bd». Все нулевые значения пропали, и хотя он содержит два значения «b» и «d». Его длина печатается как 1.
Я хочу преобразовать строку файла CSV в массив со всеми значениями null и non_NULL, чтобы я мог выполнять итерации для элементов массива и задавать условия, основанные на нулевых и ненулевых значениях. Как я могу это сделать ???