返回列表 发帖

[原创教程] [Perl]函数返回复合数据结构

本帖最后由 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;           # 返回这个结构体的引用
}COPY
输出结果
[[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;   # 返回这个数组(复合结构)的引用
}COPY
1

评分人数

[url=][/url]

返回列表