sub merge { if(wantarray) { return @_; } else { return join('',@_); } } #### my %hash = merge(%hash1,%hash2); #### my @array = merge(@array1,@array2); my $scalar = merge($scalar1,$scalar2); # or like the push function (only you have to get the return value) my @array = merge(@array2,$scalar);