gpt4 book ai didi

Perl 和 PostgreSQL 转义 $

转载 作者:行者123 更新时间:2023-11-29 14:20:21 24 4
gpt4 key购买 nike

我有一个从 perl 执行的 SQL 语句。

$my_sql = qq (
SELECT 1 AS ....
);

然后我做

my $sm = $dbh->prepare($my_sql);
$sm->execute;

问题是我的 SQL 在很多地方都有这样的正则表达式。

value ~ '^[1-9][0-9]?/[1-9][0-9]?/[1-9][0-9]{3}$':

因此,由于这些“$”,我在执行 perl 脚本时出错。

Use of uninitialized value $' in concatenation (.) or string at
DBD::Pg::st execute failed: execute called with an unbound placeholder at

如何避免这些错误并使 SQL 语句正常工作?

最佳答案

qq(something) 只是 “something” 的另一种表达方式,而 q(something) 表示 'something'.

"this"'this' 之间的区别在于插值,插值仅在双引号内启用。

my $foo = 123;
print "<< $foo >>"; # prints << 123 >>
print '<< $foo >>'; # prints << $foo >>

所以,由于 $ 不是 '' 中的特殊符号,只需将 qq 更改为 q

关于Perl 和 PostgreSQL 转义 $,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30025475/

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