何时使用定义

2023-12-07

我对测试参数的方式有点困惑。以下是下面发布的源代码中的两个示例。首先是这个

if(!defined($DBHdl) || !defined($acct_no));

测试未定义参数的方法?

其次,分配给 hashref 后

$ptMtrRecRef = $ptSelHdl->fetchrow_hashref;

是最好的测试方法$ptMtrRecRef被定义为使用

if(!$ptMtrRecRef)

or

if(!defined($ptMtrRecRef))?

###############################################################################
#  Returns count of meters per account number.

# $PkNam  -- package name discarded
# $DBHdl -- ICS database handle
# $acct_no -- water account number

sub mgbl_get_meter_count
{
    my ($PkNam, $DBHdl, $acct_no) = @_;

    die("mgbl_get_meter_count passed undef handles.\n")
        if(!defined($DBHdl) || !defined($acct_no));

    my $ptSelHdl;
    my $ptMtrRecRef;

    my $sql_statement = 
     "select count(*) from meter m where m.acct_no = ".$acct_no.";";

    $ptSelHdl = $DBHdl->prepare($sql_statement);

    die("Cannot prepare select count(*) from meter m\n")
      if(!$ptSelHdl || !$ptSelHdl->execute);

    $ptMtrRecRef = $ptSelHdl->fetchrow_hashref;

    return $ptMtrRecRef;
}

$sth->fetchrow_hashref要么会返回undef或对哈希的引用。像这样

if (defined($row))

and

if ($row)

在这里是等价的。 (undef是假的,引用总是正确的。)我选择更简单的替代方案。

同样的想法$dbh->prepare.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时使用定义 的相关文章

  • 如何将会话管理添加到简单的 Perl CGI 网页?

    我有一个简单的网页 到目前为止不需要任何登录 它是用 Perl CGI 编程的 我想知道添加会话支持以便获得登录信息的步骤 我不需要非常复杂的方法 因为网页非常简单 另外 我想要一些关于支持 Perl 会话所需的技术 库的建议 我在很多很多
  • 如何在 Perl 中复制整个目录?

    我需要将整个目录复制到某个位置 最好的方法是什么 File Copy正如我所见 仅逐个文件复制 顺便说一句 我在Windows下工作 感谢帮助 也许调查一下文件 复制 递归 http metacpan org pod File Copy R
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • Text::平衡和多行 xml

    看来我有点失落了 我需要解析一个大的 大约 100 mb 且相当难看的 xml 文件 如果我使用parsefile 它返回错误 文档元素后的垃圾 但它会很乐意解析文件的较小元素 所以我决定将文件分解为元素并解析它们 由于不鼓励使用正则表达式
  • 客户端浏览器关闭时服务器端 Perl CGI 脚本中断

    我已经尝试解决一个小问题很长一段时间了 但似乎我无法解决 我编写了一个 HTML 页面 它在提交表单时调用 perl CGI 脚本 该 CGI 在服务器端执行一定数量的任务 我让脚本将这些任务的步骤打印到 HTML 页面上的 iframe
  • 快速 Perl signint 处理程序

    收到 Ctrl C 时处理程序清理的最方便 最清晰的方法是什么 例如 当我的套接字服务器以这种方式被终止时 TCP 套接字永远不会关闭 我想要一个很好的衬里 我可以将其放在程序的顶部来设置 sigint 处理程序 或类似 atexit 的东
  • 如何彻底删除 Perl 中的包?

    如何在 Perl 中彻底删除一个包 这不仅意味着包变量 还意味着 Perl 更新以处理继承更改和其他事情的任何魔术表 这个简单的测试 use warnings use strict use Test LeakTrace use Symbol
  • 如何在 Perl 字符串中手动插入字符串转义符?

    在perl中假设我有一个像这样的字符串 hello tworld n 而我想要的是 hello world 也就是说 hello 然后是文字制表符 然后是 world 然后是文字换行符 或者等价地 hello tworld n 注意双引号
  • 如何修复 Math::BigInt 调用的 Math::Pari 中的“`as_number' 不是 Pari 函数名称”?

    在 Perl 5 8 5 上 我看到问题中列出的错误 我正在运行这些版本模块 数学 BigInt 1 89 数学 BigInt FastCalc 0 19 数学 BigInt GMP 1 24 数学 BigInt Pari 1 13 数学
  • 如何使用“子例程引用”作为哈希键

    在 Perl 中 我正在学习如何取消引用 子例程引用 但我似乎无法使用子例程引用作为哈希 键 在下面的示例代码中 我可以创建对子例程 subref 的引用 然后取消引用它以运行子例程 subref 我可以使用引用作为哈希 值 然后轻松取消引
  • 将 stdin/stdout 从执行进程重定向到 Perl 中的管道

    我试图让执行子进程中的 STDOUT STDERR 通过 Perl 中的管道返回到父进程 我见过的最接近我想做的事情是 http forums devshed com perl programming 6 exec and redirect
  • Perl 脚本的 shebang 行应该使用什么?

    哪一个用作 Perl 脚本的 shebang 行更好或更快 perl perl exe fullpath perl perl exe partialpath perl perl exe 并且 当使用 perl 当它在特定系统上运行时 我如何
  • Mojolicious:我应该使用一个还是多个 websocket?

    我正在自学 Mojolicious 和 websockets 到目前为止 我已经有了一个网页 它显示数据库中的行 并具有用于添加 删除和更新行以及选择用于排序的列的按钮 目前 它在每个按钮的 javascript onclick 处理程序中
  • 在 perl 中 \*STDIN 与 STDIN 相同吗?

    我是作者Python化者 https github com snoopyjc pythonizer我正在尝试将 CGI pm 的代码从标准 perl 库翻译为 Python 我在中遇到了这段代码从客户端读取 https metacpan o
  • 在 Perl 中检测全局破坏

    我想检测我的物体是否被DESTROY作为全局破坏的一部分 并打印出警告 因为这显然是一个错误并导致数据丢失 显而易见的方法似乎是 sub DESTROY my self shift if i am in global destruction
  • 如何在perl中使用O_ASYNC和fcntl?

    我想使用 O ASYNC 选项 当管道可以读取时 SIGIO 的处理程序将运行 但以下代码不起作用 任何人都可以帮助我吗 bin env perl use Fcntl SIG IO sub print catch SIGIO n my fl
  • 在哪里可以找到将现有 CPAN 模块转换为使用 Dist::Zilla 的简明指南?

    我曾多次阅读过相关文档和一些博客文章地区 齐拉 http search cpan org dist Dist Zilla 我从来没有对自己的理解充满信心 在回答另一个问题时 Ether 提出了转换的可能性地穴 SSLeay http sea
  • 如何匹配与 Perl 中的特定模式不匹配的字符串?

    我知道使用正则表达式很容易匹配除给定字符之外的任何内容 text ab ac ad text s c g Match anything except c text is now c 我不知道如何 排除 字符串而不是字符 我如何 匹配除 ac
  • 如何绑定值 INSERT INTO mysql perl

    我有下面的代码可以工作 但我需要知道如何绑定它们以确保安全 如果我只是将 new row 替换为 并将其放入执行中我收到错误 感谢您的帮助 foreach my field account field order new row param
  • 如何只读取文件的第一行

    我已经用谷歌搜索了一段时间 但我找不到只读取文件第一行的函数 我需要读取文本文件的第一行并从中提取日期 Perl 新手 open my file lt filename txt my firstLine lt file gt close f

随机推荐

  • php:是否有充分的理由引用所有数组键/索引?

    我正在运行别人的代码 他们不断地避免转义他们的数组键 例如 row rsCatalogsItems 名称 代替 row rsCatalogsItems 名称 所以我不断地对我接触到的一切做出微小的改变 只是为了应对那一点懒惰 但现在我想知道
  • Matlab条形图:更改条形图的颜色以及条形图和轴之间的间距

    我有一个棘手的问题 我认为不能简单地回答 我有一个很大的数据表 想要保存每两个相应平均值的条形图 我已经使用 for循环 做到了这一点 但我无法为我的条形图设置不同的颜色 也无法在条形图和轴之间设置适当的间距 这是最简单的例子 k 2 5
  • 如何自定义UIPickerView高度?

    如何自定义 UIPickerView 的高度 我希望它比250高 我已完成以下操作 但无法设置给定高度 void pickerview id sender pickerView UIPickerView alloc initWithFram
  • 为什么 __getattr__ 能够在 Python 2.x 中处理内置运算符重载,但不能在 Python 3.x 中处理?

    在 python 2 x 中 采用以下类 class Person def init self name self name name def myrepr self return str self name def getattr sel
  • 初始化对象时,{0} 是什么意思?

    When 0 用来初始化一个对象 什么意思呢 我找不到任何参考资料 0 任何地方 并且由于花括号 谷歌搜索没有帮助 示例代码 SHELLEXECUTEINFO sexi 0 what does this do sexi cbSize siz
  • Selenium:如何将值从field1复制到field2?

    我们正在 Firefox 中使用 Selenium IDE 录制测试 我们需要将值从只读字段复制到输入字段 有没有直接的方法可以引用该字段 或者我是否必须存储和使用它 举个例子就太好了 Thanks 您将需要两个命令 一个用于存储 一个用于
  • Java 创建新的 ObjectInputStream 块

    我正在尝试使用从 Socket 检索的 InputStream 创建一个新的 ObjectInputStream 这是我的代码 这是我的 MessageGetterSender 类的构造函数 程序未到达检查点 4 public Messag
  • Symfony2实体注释中的可配置参数

    我正在尝试跨多个数据库 其中一个属于遗留应用程序 创建一个联接 如教义博客 但是 该示例建议将数据库名称直接硬编码到模式中 出于显而易见的原因 我想避免这样做 有没有办法读取定义的参数parameters ini or config yml
  • LD_PRELOAD可以用来加载不同版本的glibc吗?

    角色阵容 big old app链接到旧版本glibc say glibc 2 12 我无法做任何事情来改变这一点 cute new addon o链接到较新的版本 glibc 2 23 This glibc 2 23位于非标准路径中 因为
  • 是否可以用交替的垂直列填充 DataGridView?

    我需要显示混合 硬编码 字符串和数据库中的数据的数据 具体来说 每个偶数列都包含不是来自数据库的字符串值 每个奇数列都包含数据 例如 第 1 列将包含数据库中的值 1 到 12 因此前两列看起来像这样 并且相同的模式重复多次 00 00 B
  • 如何修复nodejs抛出错误; ^ 错误:ENOENT:没有这样的文件或目录,请打开

    这就是我的输出的样子 我从以前的类似问题中用尽了很多方法 但没有一个对我的情况有效 我对 Node js 非常陌生 所以任何建议都会非常有帮助 C Users pushp Desktop factor gt snarkjs help int
  • Renderscript c风格指针使用性能问题

    在渲染脚本中 我使用绑定指针来迭代大图像 问题在于数组访问性能 for int i 0 i lt channels i sum input i input size mulValue 例如 当 input size 为 12288 时 完成
  • Cocoa 中的 XML-RPC 服务器

    我需要在 iPhone 上创建一个 XML RPC 服务器用于测试目的 有我可以利用的图书馆吗 查看eczarny xmlrpc在 github 上 它带有一个测试服务器
  • 在 Java 中何时使用列表而不是数组?

    在Java中 什么时候优先使用List而不是Array 我认为这个问题是相反的 什么时候应该使用数组而不是列表 只有您有特定的理由才这样做 例如 项目限制 内存问题 这并不是一个很好的理由 等 列表更容易使用 我认为 并且具有更多功能 注意
  • 通过 IoC 将依赖项提供给工厂类?

    我有一个工厂类 它决定应该实例化并返回四个可用子类中的哪一个 正如您所期望的 所有子类都实现相同的接口 public static class FooFactory public IFoo CreateFoo FooEnum enum sw
  • 如何使用 html/css 应用不透明度而不影响子元素?

    我想使用 html 和 css 来实现这一点 我尝试将容器的不透明度设置为 0 3 将盒子的不透明度设置为 1 但它不起作用 两个 div 的不透明度均为 0 3 我在这里尝试的 jsFiddle 我想要实现的效果是页面顶部出现一个弹出框
  • 使用numpy.random.normal时如何指定上限和下限

    我希望能够从只落在 0 和 1 之间的正态分布中选取值 在某些情况下 我希望能够基本上返回完全随机的分布 而在其他情况下 我希望返回落在 0 和 1 之间的值高斯的形状 目前我正在使用以下功能 def blockedgauss mu sig
  • 休息 - 404 未找到

    我正在使用 ColdFusion 10 的 RESTful Web 服务 首先 我通过 CF admin 注册了一个休息服务 C ColdFusion10 cfusion wwwroot restful 并将其命名为 IIT 现在 我有 C
  • 如何在JMeter中修改/添加Cookie?

    我对 JMeter 非常陌生 需要您帮助我了解如何修改 cookie 这是场景 我正在测试一个提供多个问题答案的评估 考试网站 当用户做出选择并点击提交按钮时 页面中的 JavaScript 会将其答案 例如 Answers BBAACDA
  • 何时使用定义

    我对测试参数的方式有点困惑 以下是下面发布的源代码中的两个示例 首先是这个 if defined DBHdl defined acct no 测试未定义参数的方法 其次 分配给 hashref 后 ptMtrRecRef ptSelHdl