【发布时间】:2017-12-09 18:42:53
【问题描述】:
我需要用Perl写一个联合函数,我做的是这里,问题后面是代码。
sub union
{
my @array1 = qw/a b c d/;
my @array2 = qw/a f g h/;
my %myunion = ();
@myunion{ @array1, @array2 } = (1) x ( @array1 + @array2 );
@myunion = keys %myunion;
return @myunion;
#if(){
# return @myunion;
#}
#else{
# return join ',', @myunion;
#}
}
my @uString = union( [ 1, 2, 3 ], [ 2, 3, 4 ] );
my @uList = union( [ 1, 2, 3 ], [ 2, 3, 4 ] );
print "$uString\n"
print "@uList\n";
因此,如果没有我的命令部分,我的输出是随机顺序的 a b c d f g h,但我想让它们随机顺序为 1 2 3 4,就像我在 @uList 中写的输入一样。另外我需要检查调用者是否需要一个列表,如果是,它将以随机顺序返回 1 2 3 4,否则,它将返回一个以逗号分隔的联合字符串,该字符串应该是随机的 1,2,3,4命令。所以想知道if else语句的条件部分应该怎么做。
【问题讨论】:
-
你在寻找wantarray函数吗?
-
如果你想让输出反映参数的内容,那么你必须使用传递的值而不是硬编码的数组
@array1和@array2 -
我正在写一个使用哈希的函数
-
$uString和@uString是不同的变量。此外,您的潜艇不会读取参数。 -
@nicken:可以更新你的问题吗?
标签: perl perl-module