gpt4 book ai didi

perl - 将数组传递给 Perl sub 时出现 "Too many arguments"?

转载 作者:行者123 更新时间:2023-12-03 11:45:06 25 4
gpt4 key购买 nike

我在 perl 中有一个函数

sub create_hash()
{
my @files = @_;

foreach(@files){
if(/.text/)
{

open($files_list{$_},">>$_") || die("This file will not open!");

}
}

}

我通过传递一个数组参数来调用这个函数,如下所示:
create_hash( @files2);

该数组中有大约 38 个值。
但我收到编译错误:
Too many arguments for main::create_hash at ....

我在这里做错了什么?

我的 perl 版本是:
This is perl, v5.8.4 built for i86pc-solaris-64int
(with 36 registered patches, see perl -V for more detail)

最佳答案

你的问题就在这里:

sub create_hash()
{
()prototype .在这种情况下,它表示 create_hash不带参数。当你试图通过它时,Perl 会提示。

它应该看起来像
sub create_hash
{

一般情况下, you should not use prototypes with Perl functions .它们不像大多数其他语言中的原型(prototype)。它们确实有用途,但这是 Perl 中相当高级的主题。

关于perl - 将数组传递给 Perl sub 时出现 "Too many arguments"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929415/

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