perl - 是否有类似于 "undefined but true"的 "0 but true"值?

标签 perl

我正在编写一个搜索例程,其中 undefined 和零都是有效结果。我正在返回一个两元素数组,如 ($result, $answer)因为我没有“未定义但真实”的值。它工作正常,但有点笨拙。一个类(class)似乎有点矫枉过正。

这样的事情是否存在或可以以某种方式伪造?我正在考虑诸如 0E0 之类的事情把戏之类的

更多细节。这是我想要的用户界面。当前例程返回两个值,结果(无论是否找到键)和一个值(如果找到)。

my $result = search_struct($key, $complex_data_structure);
if ($result) {
    print "A result was found for $key!  Value is: ", $result // "Undefined!", "\n";
}
else {
    print "Sorry, no result was found for $key.\n";
}

最佳答案

您可以只返回对结果的引用。返回 undef没有结果,\( undef )对于文字未定义的结果,\( whatever )对于任何其他结果。然后调用者可以使用 $$result (在确定 $result 被定义后)。

关于perl - 是否有类似于 "undefined but true"的 "0 but true"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783681/

相关文章:

perl - Web::Scraper语法中的{}是什么意思?

perl - 在 Perl 中使用 Win32::OLE 生成 Excel 输出

bash - ssh perl 脚本未运行

perl - 如何检查 Perl 中是否存在 UTF-16 文件名?

javascript - 具有 href 和 onclick 以及 AJAX 请求的 HTML 标记 <a>

perl - 如何使用 Perl Google API 获取超过 1000 个 Google 结果?

windows - 如何让 32 位 Perl 读取 64 位 Windows 注册表?

arrays - 循环遍历哈希中包含的数组

Perl 调试器在 Perlbrew 下无法使用箭头键

Perl:latin1 模块中的字符串文字 - 我想要 utf8