本帖最后由 523066680 于 2025-3-7 22:34 编辑
emm... 其实这都不值一提,今天偶然看到知乎有个perl的话题下,有个人拿这个函数返回值说事:
客观地说,Perl 是不是快死了? Whoami 的回答
-
Perl确实冷门的不行,但是这个复合数据结构的返回还是支持的。- use JSON qw/to_json/;
- my $data = gen_data();
- printf "%s\n", to_json($data); # 用 json 的形式打印 $data 的完整内容
-
- sub gen_data
- {
- my $data_ref = [ [], [] ]; # 使用引用的形式保存数据
- map { push @{$data->[0]}, $_ } 1 .. 20;
- map { push @{$data->[1]}, $_ } 'a' .. 'z';
-
- return $data_ref; # 返回这个结构体的引用
- }
复制代码 输出结果
[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]]
这个 gen_data 也可以这么写- sub gen_data
- {
- my @data = ( [], [] );
- $data[0] = [ map { $_ } 1 .. 20 ];
- $data[1] = [ map { $_ } 'a' .. 'z' ];
-
- return \@data; # 返回这个数组(复合结构)的引用
- }
复制代码
|