- 求职 : 软件工程师
- 论坛徽章:
- 3
|
想看二维数组的结构, 打印是打印不出来的, 要用模块, 推荐用 JSON
- use 5.020;
- use JSON qw(encode_json decode_json);
- my $array = [1,2,3];
- my $push_array = [ push @$array, [4,5,6] ];
- say encode_json($push_array);
复制代码
我也不知道以上的代码能不能运行, Perl 的引用是后来加上的, 所以直接往引用里 push, 在新版本中不被支持了.
Perl 有两种表示数组的方法:
直接量:
引用:
直接量和引用在使用的时候除了语法略微不同外, 在当成参数传入函数的时候, 引用传递的是指针, 而直接量传递的是值.
大部分针对数组的函数, 都是针对直接量的, 要针对引用, 要显式的解引用.
- my $array = [1,2,3];
- my @array = @{ $array };
- my $ref_array = [ @array ];
复制代码
获取数组元素, 针对直接量和引用也不同:
- my $array = [1,2,3];
- my $first_value = $array->[0];
复制代码
- my @array = (1,2,3);
- my $first_value = $array[0];
复制代码
这很容易让人迷糊, 所以, Perl6 做了改进:
- my @array = [1,2,3];
- my $first_array = @array[0];
复制代码
针对以上种种别扭, 我写代码统一使用引用, 然后加个语句, 让所有的引用都和直接量一样:
- use 5.018;
- use JSON::XS qw(encode_json decode_json);
- use experimental qw(switch autoderef);
复制代码
能彻底不关心这些破事, 最好了. |
|