作者DarkKiller (System hacked)
看板Perl
标题Re: [问题] 如何从sub读取hash of array的值
时间Sat Mar 3 15:34:06 2012
※ 引述《saka12 (saka)》之铭言:
: 现在卡在...当我<STDIN>之後,我不知道怎麽传递变数到sub之後,并得到该考试的value
: 我今天试了好久,也google了,可是还是卡在这里,请大家帮帮忙,谢谢
新接触 Perl 的人不知道 hash & array 的设计 XD
* 以下传参数的方式对 my_function() 收到的资讯都一样:
my_function($a, $b, $c, $d);
my_function($a => $b, $c, $d);
my_function($a => $b, $c => $d);
my_function($a, $b, $c => $d);
# 还有迟早会出事这招!XDDD
my_function($a, $b => $c, $d);
* 所以这个就见怪不怪了:
my @array = (1, 2 => 3, 4);
my %hash = @array;
# %hash 里会是 (1 => 2, 3 => 4)
* 再来是 array 与 array reference:
my @array = (1, 2, 3, 4);
my $array_ref = [1, 2, 3, 4];
* 於是很多人会用力踩这个地雷:
my @array1 = (1, 2, 3);
my @array2 = (4, 5, 6);
my $array_of_array_WRONG = (@array1, @array2);
# (1, 2, 3, 4, 5, 6)
# 然後岔个题...
my $hash_ref = {@array1, @array2};
# {1 => 2, 3 => 4, 5 => 6},摆明就是... 爆 XD
my $array_of_array_CORRECT = (\@array1, \@array2);
# 在 Perl 里实做 array of array 其实是实做 array of "array reference"
除了这己个比较特别的变数用法以外,其他的没有很特别吧?
==
嗯,其实还有...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.242.135.97