perl变量做为数组名怎样写?
如下语句为什么会报错?@{line{$j}}[$i]=$eachline;此处赋值哪里有问题?.....while($eachline=<FILELIST>){$j++;...
如下语句为什么会报错? @{line{$j}}[$i]=$eachline; 此处赋值哪里有问题?
.....
while ($eachline=<FILELIST>){
$j++;
@{line{$j}}[$i]=$eachline;
$i++;
} 展开
.....
while ($eachline=<FILELIST>){
$j++;
@{line{$j}}[$i]=$eachline;
$i++;
} 展开
1个回答
展开全部
1. @{....}[...] 先不论这里有没有写错, 但这种表达方式,
以 @ 开头, 头面有 [ ] , 我们叫 array slice 是应该放在等号右手边的
@arr0 = (0..10)
@arr1 = @arr0[1..2]; # @arr1 = 1, 2
$x = [ 1..10 ];
@y = @{$x}[1,2]; # @y = 1, 2
这里你放到了左手边, 自然就不对了
2. 然後, @{line.... 这里就少了个 $ 应该写成 @{$line ....
3. 最後, 我想你真正想做到的效果应该是
$line->[$j][$i] = $eachline; # Array of Array
#又或者
$line->{$j}[$i] = $eachline; # Hash of Array
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询