将两个或多个数组传递给Perl子例程
|
我在传递和读取子例程中的参数时遇到麻烦,该子例程应该有两个数组。
sub two_array_sum { # two_array_sum ( (1 2 3 4), (2, 4, 0, 1) ) -> (3, 6, 3, 5)
# I would like to use parameters @a and @b as simply as possible
}
# I would like to call two_array_sum here and pass two arrays, @c and @d
我已经从网上看到并尝试了几个示例,但是没有一个对我有用。
没有找到相关结果
已邀请:
7 个回复
死簇
因此,您将在哪里编写此代码:
您只需编写以下代码:
通过原型 类似于
。 (就像
一样,它要求在某物上贴
)
这样你做的时候
有用。通常情况下,它只会以一长串的形式显示在您的子目录中。正如您在下面的讨论中所看到的,它们并不适合所有人。 引用 这就是每个人向您展示的方式。
关于原型 他们很挑剔。如果您有裁判,这将不起作用:
您必须像这样通过它们:
但是,由于嵌套数组很深,使“数组表达式”变得非常丑陋,因此我经常避免Perl的麻烦,因为您可以通过将Perl放在类型为“ character class”的结构中来重载Perl将使用的引用类型。 。
表示引用可以是标量或数组。
因此,所有这些工作:
但是,由于某些原因,Perl对此还是很挑剔的:
或仍然可以视为对数组的引用的任何其他“构造函数”。幸运的是,您可以使用旧的Perl 4
关闭Perl。
然后,子程序中的复用代码负责处理两个数组引用。
漂汀拦
请勿使用
或
作为变量名,因为
和
是特殊的(用于排序)。
亲奋漏
...
裸雷胜檀哭
导力疵谜
催备南菠亨
您甚至可以避免重建数组并直接使用引用。
用法:
方括号构造一个匿名数组(由其中的表达式结果填充),并返回对该数组的引用。因此,以上内容也可以编写如下:
骂陋冠
当您以这种方式进行操作时,可以对变量进行更严格的控制,而不会遇到程序信息与配置信息混杂在一起的情况。 通常,在任何程序中,我的变量都不会超过三个或四个。 我还对它保持一个系统-我使用列表哈希值列表对象的哈希值。
原因是,只要我坚持交替使用每种方法,“ 34”都可以转储整个结构-而且我可以更好地控制数据范围,并且可以轻松地传递整个结构。 我经常发现自己将这样的多个结构传递给子例程。作为标量,它们通过得很好,谢谢。