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 了先用着调试程序,
相关推荐
知已难寻3 天前
00 · OpenStack 总纲——从云计算到 OpenStack 全景
运维·服务器·云原生·云计算·负载均衡·openstack·perl
开开心心就好3 天前
电脑语音实时转文字工具,会议记录很省事
运维·服务器·前端·c#·ocr·perl·1024程序员节
开开心心就好10 天前
课堂随机点名工具,绿色版免安装双击即用
java·服务器·前端·ffmpeg·音视频·perl·symfony
GIS数据转换器13 天前
地下空间综合管廊运营管理平台
大数据·开发语言·人工智能·经验分享·perl
acd1200914 天前
静态资源 CDN 回源,那些藏在 304 里面的坑
perl
开开心心_Every16 天前
黄金价格软件国内外价格实时监控超方便
运维·服务器·游戏·智能手机·pdf·lua·perl
开开心心_Every17 天前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
开开心心就好20 天前
一元二次方程求解工具,答案带详细步骤
java·服务器·开发语言·算法·pdf·ocr·perl
AI情绪识别开源1 个月前
HFpEF 心房-心室耦联效率无创监测方向(AVCEI)
typescript·laravel·perl
2501_930472442 个月前
从物理机到 CVM 全流程落地:部署脚本的 8 个云化改造点(附代码对比)
开发语言·人工智能·架构·腾讯云·perl