在Perl中的逗号插值数组中的最后一个元素之前添加“和”
发布时间:2020-12-15 23:28:33 所属栏目:大数据 来源:网络整理
导读:我想创建一个子程序,它向元素添加逗号,并在最后一个元素之前添加“和”,例如,使“12345”变为“1,2,3,4和5”.我知道如何添加逗号,但问题是我得到的结果是“1,4和5”,我不知道如何摆脱最后一个逗号. sub commas { my @with_commas; foreach (@_) { push (@wit
我想创建一个子程序,它向元素添加逗号,并在最后一个元素之前添加“和”,例如,使“12345”变为“1,2,3,4和5”.我知道如何添加逗号,但问题是我得到的结果是“1,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,4和5” – 最后用逗号表示.逗号来自哪里?只有@with_commas才能得到逗号. 任何帮助表示赞赏. 解决方法sub format_list { return "" if !@_; my $last = pop(@_); return $last if !@_; return join(',',@_) . " and " . $last; } print format_list(@list),"n"; 与大多数其他答案不同,这也处理只包含一个元素的列表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |