gpt4 book ai didi

perl - 在 Perl 中逗号内插数组的最后一个元素之前添加一个 "and"

转载 作者:行者123 更新时间:2023-12-03 18:26:46 24 4
gpt4 key购买 nike

我想创建一个子例程,为元素添加逗号并在最后一个元素之前添加一个“和”,例如,使“12345”变为“1、2、3、4和5”。我知道如何添加逗号,但问题是我得到的结果是“1、2、3、4 和 5”,而且我不知道如何去掉最后一个逗号。

sub commas {
my @with_commas;
foreach (@_) {
push (@with_commas, ($_, ", ")); #up to here it's fine
}
splice @with_commas, -2, 1, ("and ", $_[-1]);
@with_commas;
}

正如您可能知道的那样,我正在尝试删除新数组中的最后一个元素 (@with_commas),因为它附加了逗号,并添加了旧数组中的最后一个元素(@_,传递给子例程来自主程序,没有添加逗号)。

当我运行它时,结果是,例如,“1, 2, 3, 4, 和 5,”——末尾有逗号。那个逗号是哪里来的?只有@with_commas 应该得到逗号。

任何帮助表示赞赏。

最佳答案

sub format_list {
return "" if !@_;
my $last = pop(@_);
return $last if !@_;
return join(', ', @_) . " and " . $last;
}

print format_list(@list), "\n";

与大多数其他答案不同,这也处理只有一个元素的列表。

关于perl - 在 Perl 中逗号内插数组的最后一个元素之前添加一个 "and",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com