Я использую модуль DBI :: CSV в Perl для анализа моего csv и запуска запросов на данные.Использование DBI :: CSV-модуля Perl. Получите undef для пустой строки при разборе csv
Мои данные что-то вроде этого
1001|23|1|loading
1012|25||loading
Я хочу третье поле во втором ряду, чтобы быть UNDEF, который я не в состоянии достичь. Я получаю поле как пустую строку вместо undef, так как это часть кода, которую я пробовал.
use strict;
use warnings "all";
use Text::CSV_XS;
use DBI;
my $dbh = DBI->connect("dbi:CSV:", undef, undef, {
csv_sep_char => "|",
f_dir => ".",
csv_eol => "\n",
csv_empty_is_undef => 1,
csv_blank_is_undef => 1,
csv_quote_char => undef,
csv_escape_char => undef,
csv_always_quote => undef,
f_ext => ".csv",
f_enc => "utf-8",
csv_class => "Text::CSV_XS",
RaiseError => 1,
PrintError => 1
}
);
my @cols = ("col1", "col2", "col3", "col4");
$dbh->{'csv_tables'}{'info'} = { 'file' => "file.csv", col_names => \@cols };
my $result =$dbh->selectall_hashref("select col1,col2,col3,col4 from info where col1 = 1012", "col1")
#gives the following result
0 HASH(0x992573c)
1012 => HASH(0x9900e90)
'col1' => 1012
'col2' => '25'
'col3' => ''
'col4' => 'loading'
Я ожидаю, что значение col3 равно undef здесь.
Любая помощь здесь меня оценила бы. Благодаря
Я добавил ваше предложение, но до сих пор получаю тот же результат, что и пустая строка. – user1737619
Я запустил ваш код и ваш образец и получил именно то, что вы запросили, в качестве желаемого результата, поэтому я не знаю, что не так с вашим кодом, это ваш код выше, точно так же, как и то, что вы используете? – nrathaus
Да, это точно так же. – user1737619