gpt4 book ai didi

perl - 为什么 DBD::CSV 提示 "Loose unescaped quote"?

转载 作者:行者123 更新时间:2023-12-02 05:14:14 25 4
gpt4 key购买 nike

为什么从 __DATA__ 读取有效而从文件读取无效(松散未转义引号)?

#!/usr/bin/env perl
use warnings; use strict; use 5.010;
use DBI;

my $table = 'klassik_CD.csv';
print qx(cat $table);

print qq{\n"data" or "Enter" : };
chomp( my $aw = <> );

if ( $aw eq 'data' ) {
$table = 'te_mp_fi_le.csv';
open my $fh, '>', $table or die $!;
while ( defined( my $row = <DATA> ) ) {
print $fh $row;
}
close $fh or die $!;
}

my $dbh = DBI->connect( "dbi:CSV:", { RaiseError => 1 } );
$dbh->{csv_tables}{$table} = { col_names => [], sep_char => ';' };

my $sth = $dbh->prepare( "SELECT * FROM $table" );
$sth->execute;
while ( defined( my $row = $sth->fetchrow_hashref ) ) {
say $row->{col1};
}

__DATA__
1;"Kammermusik fuer Blaeser";16;"DG";"eloquence";"dc129610"
2;"Requiem – Laudate Dominum Exultate, jubilate";19;"DG";"eloquence";"0a11f513"

输出:“数据”
1;“Kammermusik fuer Blaeser”;16;“DG”;“ Eloquent ”;“dc129610”
2;“安魂曲——赞美主宰,欣喜若狂”;19;“DG”;“ Eloquent ”;“0a11f513”

“数据”或“输入”:数据
Kammermusik fuer Blaeser
安魂曲 – Laudate Dominum Exertate, jubilate


输出:“输入”
1;“Kammermusik fuer Blaeser”;16;“DG”;“ Eloquent ”;“dc129610”
2;“安魂曲 – Laudate Dominum Exultate, jubilate”;19;“DG”;“eloquence”;“0a11f513”

“数据”或“输入”:
DBD::CSV::st 执行失败:
执行错误:读取文件时出错 2034.

[for Statement "SELECT * FROM klassik_CD.csv"] at ./zzzzzzzzzz.pl line 27.
DBD::CSV::st fetchrow_hashref 失败:在 ./zzzzzzzzzz.pl 第 28 行尝试在没有执行 () 调用的情况下或从非 SELECT 语句 [for Statement "SELECT * FROM klassik_CD.csv"] 中获取行。

最佳答案

当我将文件从“klassik_CD.csv”重命名为“klassik_cd.csv”(全部小写)时,它起作用了(尽管没有“找不到文件”这样的消息)。

关于perl - 为什么 DBD::CSV 提示 "Loose unescaped quote"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com