在JavaScript中合并两个关联数组的最佳/标准方法是什么?每个人都是通过滚动自己的for循环来做到的吗?
根据这个问题的答案,在Perl 5中合并两个哈希值可以通过以下方式完成:
%newHash = (%hash1, %hash2); %hash1 = %newHash;
Run Code Online (Sandbox Code Playgroud)
要么:
@hash1{keys %hash2} = values %hash2;
Run Code Online (Sandbox Code Playgroud)
另一方面,Perl 5.18将引入每进程哈希随机化.
第二种方法在Perl 5.18中使用是否仍然正确?
我有这样的对(数据排序为%哈希格式(我有大数据))
G1-G2
G2-G3
D1-D2
D3-D2
G3-D3
G2-D3
Perl脚本
use strict;
use warnings;
use Data::Dumper;
my %hash;
$hash{'G1'}='G2';
$hash{'G2'}='G3';
$hash{'D1'}='D2';
$hash{'D3'}='D2';
$hash{'G3'}='D3';
$hash{'G2'}='D3';
print Dumper \%hash;
Run Code Online (Sandbox Code Playgroud)
输出
$ VAR1 = {'G1'=>'G2','G2'=>'D3','D3'=>'D2','G3'=>'D3','D1'=>'D2' };
这里缺少G2-G3 bcz密钥哈希重复
我需要添加重复项(我可以使用数组但是有大数据系统会变慢)
任何快速方法添加对并获得可能对的条件输入
如果$ input ='G2'
获取输出G2 - >(G3,D3,G1)
如果$ input ='D2'
获取输出D2 - >(D1,D3)
我需要加入2个perl数组/列表(抱歉,不知道它们是如何正确命名的)格式
[ a=>1, b=>2, c=>3 ] and [ d=>4, e=>5, f=6 ]
Run Code Online (Sandbox Code Playgroud)
并需要加入他们
[ a=>1, b=>2, c=>3, d=>4, e=>5, f=6 ]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我之前从未使用过这样的列表......
我需要HTTP :: Request :: Common
$ua->request(POST 'http://somewhere/foo', [foo => bar, bar => foo]);
Run Code Online (Sandbox Code Playgroud)
因为每个请求都有一组标准参数,另外还有自定义参数,具体取决于请求.当然,我不希望在每个请求中编写相同的内容,而只是定义公共参数一次.
Tnx为你提供帮助,罗伯特
这是aprox.我想做的事:
my $result = httpPOST( $url, [ a=>1, b=2, ... ] );
sub httpPOST {
my( $url, $params ) = @_; # ???
my $ua = LWP::UserAgent->new;
my $result = $ua->request( POST $url, [ %auth, ????? ] );
return $result->content;
}
Run Code Online (Sandbox Code Playgroud)
嗯......我没有得到合适的语法.请你帮助我一次!?;)
我目前有以下内容
# $dog, $cat, $rat are all hash refs
my %rethash = ('success' => 'Your Cool');
my %ref ={ 'dog' => $dog, 'cat' => $cat, 'mouse' => $rat,
'chicken' => '' };
my $perlobj = ( \%ref,\%rethash );
Run Code Online (Sandbox Code Playgroud)
当$ perlobj被转储时,这就是结果
$VAR1 = {
'success' => 'Your Cool'
};
Run Code Online (Sandbox Code Playgroud)
但是,当启用警告时,我收到以下消息
Useless use of reference constructor in void context at ..
Run Code Online (Sandbox Code Playgroud)
我意识到使用{}分配%ref的方法存在严重错误,这段代码有什么问题?我似乎无法摆脱这个警告......
编辑:好的我想我发现了什么,
my $perlobj = ( \%ref,\%rethash );
Run Code Online (Sandbox Code Playgroud)
这不会合并但会导致$ perlobj成为%rethash的引用,这在阅读您的回复后很明显.
{ 'a' =>1, % { sub() } }
Run Code Online (Sandbox Code Playgroud)
这是否最适合将作为 ref 返回的哈希包含在其他中?
%$sub() 不起作用。
就我而言, new {} 生成新的散列并返回引用,可能是 new 优化了这种情况,但不确定。
我有以下哈希,我想为它添加更多的值; 但是,这样做会取代整个哈希值.我很确定这是一个基本的问题,但perl是一个神秘的谜.
my %myNewHash = ();
%myNewHash = (
lastName => $primaryInfo->{lastName},
firstName => $primaryInfo->{firstName}
);
%myNewHash = (
email => $primaryInfo->{email},
phone => $primaryInfo->{phone}
);
Run Code Online (Sandbox Code Playgroud)
此时,%myNewHash仅包含电子邮件/电话,lastName/firstName已被删除.
perl ×6
hash ×4
arrays ×1
http-post ×1
httprequest ×1
javascript ×1
merge ×1
object ×1
perl-module ×1
reference ×1
return ×1