如何使用逗号和"和"加入列表?

Gre*_*reg 3 perl

给出一个列表(a, b, c),最好的方法是创建一个字符串,其中逗号分隔所有元素,除了由'和'分隔的最后一个元素a, b and c.理想情况下,这也适用于一个和两个元素列表.

ike*_*ami 6

在这种情况下,在一个语句中干扰所有内容会使解决方案更难以阅读.

sub nice_join {
    my $last = pop;
    return $last if !@_;
    return join(', ', @_) . " and $last";
}
Run Code Online (Sandbox Code Playgroud)

如果你想要除了undef以外的东西没有参数,

sub nice_join {
    return "none" if !@_;
    my $last = pop;
    return $last if !@_;
    return join(', ', @_) . " and $last";
}
Run Code Online (Sandbox Code Playgroud)