Perl:函数参数不足

2024-04-22

我是 Perl 的新手,目前正在尝试理解提到的错误消息。

我有这段代码(仍然主要用于测试目的)

#!/usr/bin/perl

use strict;
use warnings;

my %info = (autor => "Karryanna", jazyk => "cs");

vec([%info]);

sub vec
{
  my ($hashref) = @_;
  print $hashref->autor . "\n";
}

当我尝试运行它时,它给出了此错误消息

Not enough arguments for vec at test.pl line 8, near "])"

当我尝试用谷歌搜索时,我发现这个网站 http://ubuntuforums.org/showthread.php?t=293902这让我觉得在子例程调用之前加上一个 & 符号就足够了。我尝试了一下,确实有帮助。

然而,当我后来遇到另一个问题时,谷歌搜索把我带到了这个问题 https://stackoverflow.com/questions/6985643/reference-found-where-even-sized-list-expected。重点是答案指出

您应该调用不带 & 的子例程,例如populate(...),除非你特别想覆盖子的原型。如果您不知道原型是什么,就不要使用 & 。

我完全不知道 Perl 上下文中的原型是什么。 那么 - 现实是什么样的?我应该只使用 & 还是有其他可能更“干净”的解决方案?

Thanks!

(顺便说一句,如果我可以问一点OT问题——我应该在调用子例程后真正定义它吗?这对我来说真的很不自然,但是,我已经发现恢复顺序会让编译器抱怨)


vec是一个 perl 内置函数,你会遇到名称冲突(perldoc -f vec)。将您的子例程命名为其他名称。

您可能想这样称呼它:

mysub(\%info)

在 Perl 中,您可以在声明子例程之前或之后调用它。唯一的限制是使用原型时,您可能不想这样做。当你颠倒顺序时,你会得到什么错误(“让编译器抱怨”没有多大帮助)?可能是因为名字冲突。

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

Perl:函数参数不足 的相关文章

随机推荐

  • 尽管已经安装了 python 模块,但仍无法导入它们

    我已经安装了两个plotly express and pandas using pip install plotly express and pip install pandas 我尝试使用以下命令将这些模块导入到我的程序中 import
  • IComparable CompareTo(),如何比较多个对象属性?

    我正在尝试比较对象的多个属性 但我的代码只能比较程度属性 在 Visual Studio 中调试时 我的代码似乎完全缺少 else 语句 我将不胜感激任何提示 class Student IComparable private string
  • 没有互联网连接的 Maven

    我是 Maven 项目的新手 我正在将 ant 项目更改为 Maven 项目 为了在 Maven 本地存储库中安装第 3 方 jar 我使用了 install 命令 它尝试下载资源 jar pom 我在我的组织中没有下载权限 因此构建安装失
  • 是否可以通过 CDK 为 AWS Kinesis 启用 EnableEnhancedMonitoring?

    我们希望使用 CDK 记录 kinesis 的增强 每个分片 指标 对于标准指标 我们这样做 const throughput new cloudwatch GraphWidget height CHART HEIGHT width CHA
  • 为什么 TypeSynonymInstances 不允许在实例头中使用部分应用的类型同义词?

    我知道TypeSynomymInstances 只允许在实例头中使用完全应用的类型同义词 http hackage haskell org trac haskell prime wiki TypeSynonymInstances 但如果我也
  • 从数组中打印素数

    我想用方法从数组中打印出所有素数 我可以用一个 int 来完成 但不知道如何从数组中返回某些数字 感谢帮助 public static boolean isPrime int tab boolean prime true for int i
  • Xcode 11.4 / iOS13.3.1 无法检查应用程序包

    Details Unable to install wtsp ios Domain com apple dt MobileDeviceErrorDomain Code 402653103 Could not inspect the appl
  • javascript 无法在 IE9 中调用

    我创建了一个文本框并写道onfocus getFocus 现在我用javascript编写了函数 function getFocus alert Hello I Got Focus 问题是在 IE8 中它工作得很好 但在 IE9 中警报没有
  • 如何禁用 IE8 中文本区域的默认滚动条?

    我正在浏览一些旧网站 其中有一个联系表单 并且在 IE8 中 即使没有内容 我的文本区域也始终会显示一个垂直滚动条 在 Firefox 中 直到文本区域中的内容达到认为有必要的高度时 它似乎才会使垂直滚动条存在 我在旧网站上设置了输入框的样
  • 将 NSArray 转换为 NSMutableArray [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如上 了解一下会有帮助的 谢谢 这里有两个选项 NSMutableArray createMutableArray1 NSArray ar
  • 它当前正被另一个 Gradle 实例使用

    我想做一些基本的功能 我正在命令行中运行 构建它 我指的是用户指南 http www gradle org docs current userguide userguide html 并且 做一些简单的任务 当我开始运行简单任务时 它已成功
  • 从线程接收数据后pyqt主窗口不断崩溃

    我有一个 QMainWindow 启动 QThread 并等待来自网络的数据 当收到任何数据时更新 UI 问题是 它有时会崩溃 有时不会 我所做的就是启动它并等待数据 这是线程类 class ListenerThread QtCore QT
  • 将多选列表框中的 SelectedItems 与 ViewModel 中的集合同步

    我在使用 prism 的 SL3 应用程序中有一个多选列表框 并且我的视图模型中需要一个集合 其中包含列表框中当前选定的项目 视图模型对视图一无所知 因此它无法访问列表框控件 另外 我需要能够从视图模型中清除列表框中的选定项目 不知道如何解
  • 符号查找错误未定义符号,但所有符号似乎都存在

    可执行文件似乎无法解析链接库中的符号 LD DEBUG libs 的相关输出表明加载了正确的库 6557 usr lib libcharon so 0 error symbol lookup error undefined symbol a
  • 使用 ngx-mat-file-input 从 Angular 将文件上传为 multipart/form-data

    我在用着ngx mat file input 0 检索用户输入的文件 我想将其上传到服务器 端点需要一个多部分文件 我怎样才能做到这一点 0 https www npmjs com package ngx material file inp
  • 内置模块计算最小公倍数

    我目前正在使用一个接受两个数字并使用循环来查找这些数字的最小公倍数的函数 def lcm x y This function takes two integers and returns the L C M Choose the great
  • MySQL order by 在 group by 之前

    这里有很多类似的问题 但我认为没有一个能充分回答这个问题 我将从当前最流行的继续question https stackoverflow com questions 5140785 mysql order before group by如果
  • ANTLR“无法启动调试器。等待连接到远程解析器超时。”

    我在 AntlrWorks 中运行的 ANTLR 语法之一抛出 无法启动调试器 等待连接到远程解析器超时 过去 此消息通常会消失 但此消息会持续存在 在搜索 ANTLR 列表时 例如http www antlr org pipermail
  • 将 A => M[B] 转换为 M[A => B]

    对于一个单子M 是否可以转A gt M B into M A gt B 我尝试过遵循这些类型 但没有成功 这让我认为这是不可能的 但我想我还是会问 另外 搜索 Hooglea gt m b gt m a gt b 没有返回任何东西 所以我没
  • Perl:函数参数不足

    我是 Perl 的新手 目前正在尝试理解提到的错误消息 我有这段代码 仍然主要用于测试目的 usr bin perl use strict use warnings my info autor gt Karryanna jazyk gt c