VsCode Perl Debug时模拟命令行传入参数

Unknown option: name zhangs
at D:/ProgramFiles/strawberry/perl/lib/Getopt/Long.pm line 1072.
Getopt::Long::FindOption(ARRAY(0x29ad740), "(--|-|\\+)", "--", "-name zhangS", HASH(0x32d54e0)) called at D:/ProgramFiles/strawberry/perl/lib/Getopt/Long.pm line 528
Getopt::Long::GetOptionsFromArray(undef, undef, undef, undef, undef, ARRAY(0x29ad740), "name=s", SCALAR(0x2d5c3e8), ...) called at D:\work\p1\t1.pl line 10
Unknown option: age 25
at D:/ProgramFiles/strawberry/perl/lib/Getopt/Long.pm line 1072.
Getopt::Long::FindOption(ARRAY(0x29ad740), "(--|-|\\+)", "--", "-age 25", HASH(0x32d54e0)) called at D:/ProgramFiles/strawberry/perl/lib/Getopt/Long.pm line 528
Getopt::Long::GetOptionsFromArray(undef, undef, undef, undef, undef, ARRAY(0x29ad740), "name=s", SCALAR(0x2d5c3e8), ...) called at D:\work\p1\t1.pl line 10
Error in command line arguments
at D:\work\p1\t1.pl line 10.




Perl VsCode debug 很麻烦,各种报错.而且LZ本地装上了,发现数字类型的变量可以看到,字符串类型的变量不显示,NND,折腾了好几天,最后放弃,还是用CMD 进行debug

最终还是用CMD debug 省事,就是操作小麻烦...

DBD::Pg::db do failed: 错误:  当前事务被终止, 事务块结束之前的查询被忽略 at able.pl line 777
引起原因:LZ本地是手动事务AutoCommit => 0, (AutoCommit => 1 就是自动事务)
$dh = DBI->connect(DSN, USER, PASSWORD, { RaiseError => 1,AutoCommit => 0,pg_enable_utf8 => 1}) or die DBI::errstr;
上一个SQL执行失败了,没有回滚 or 提交事务造成
代码里加:$dh->commit;

DBD::Pg::st execute failed: 错误:  无效的类型 integer 输入语法: ""
CONTEXT:  unnamed portal parameter $12 = '' at Table.pl line 800, <INFILE_CSV> line 1.
PostgreSQL数据库某字段是Integer类型,但是CSV文件某字段的值是空串''造成的异常
foreach my $value (@$csvdata) {
				if ($value eq '') {
			        $value = undef;
			    }
				if ($cnt != 0) {
					$sql .= ", ";
				}
				$sql .= "?";
				$cnt++;
			}
追加了
if ($value eq '') {
       $value = undef;
   }
把空串替换为undef,PG就能接受

DBI connect('dbname=postgres;host=127.0.0.1;port=5432','bkdb3',...) failed: authentication method 10 not supported at
Failed:不支持认证方式10 at 276行
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::Pg::db handle dbname=postgres;host=127.0.0.1;port=5432 at D:/ProgramFiles/strawberry/perl/lib/Encode.pm line 212.
Exception : 処理中にエラーが発生しました ( Wide character at D:/ProgramFiles/strawberry/perl/lib/Encode.pm line 212. 
)。
错误信息表明你在使用 Perl DBI 连接 PostgreSQL 时,遇到了认证方式的问题。具体来说,错误信息中的"认证方式10"通常是指 PostgreSQL 服务器正在使用的认证方法与你的客户端驱动程序(DBD::Pg)不兼容
解决方案:修改了pg_hba.conf文件
LZ本地是先把 md5  →  trust 了先用着调试程序,
相关推荐
mqiqe2 天前
云计算Openstack Neutron
云计算·openstack·perl
2401_858120264 天前
MATLAB云计算集成:在云端扩展计算能力
matlab·云计算·perl
逗豆逗23 天前
perl的学习记录——仿真regression
开发语言·学习·perl
子非鱼1 个月前
OpenStack概论和部署
linux·运维·开发语言·centos·perl
时钟树上的小猴子1 个月前
perl——获取数组中元素的索引
perl
MavenTalk1 个月前
那些久远的开发语言(COBOL、Pascal、Perl等)还有市场吗
开发语言·perl·pascal·basic·cobol
鹿屿二向箔1 个月前
Perl(Practical Extraction and Reporting Language)脚本
perl
深兰科技2 个月前
深兰科技创始人陈海波入选“2024先锋科创家?硬科技商业先锋榜”
javascript·人工智能·r语言·perl·symfony·深兰科技
kuio88882 个月前
根据《广东省制造业高质量发展促进条例》规定,支持___ 投资制造业领域,加强技术改造与创新。
javascript·python·r语言·c#·perl·symfony
夜色呦2 个月前
Perl套接字编程指南:构建网络通信应用
开发语言·perl