Perl substr(STRING,@ARRAY)ne substr(STRING,OFFSET,LENGTH)?
发布时间:2020-12-15 21:58:23 所属栏目:大数据 来源:网络整理
导读:为什么在Perl中: @x=(0,2); substr('abcd',@x) 评价为“cd”? 还有这个: substr('abcd',2); 评价为“ab”? 解决方法 substr 运算符的文档语法是 substr EXPR,OFFSET,LENGTH,REPLACEMENTsubstr EXPR,LENGTHsubstr EXPR,OFFSET 不 substr EXPR,ARRAY 或更
为什么在Perl中:
@x=(0,2); substr('abcd',@x) 评价为“cd”? 还有这个: substr('abcd',2); 评价为“ab”? 解决方法substr 运算符的文档语法是
substr EXPR,OFFSET,LENGTH,REPLACEMENT substr EXPR,LENGTH substr EXPR,OFFSET 不 substr EXPR,ARRAY 或更通用的 substr EXPR,LIST 这反映在 $perl -E'say prototype "CORE::substr"' $$;$$ > substr的第一个参数在标量上下文中进行评估. 标量上下文中的@x是它包含的元素数(在本例中为2). 您可以使用以下方法实现您想要的目标: sub mysubstr { if (@_ == 2) { substr($_[0],$_[1]) } elsif (@_ == 3) { substr($_[0],$_[1],$_[2]) } elsif (@_ == 4) { substr($_[0],$_[2],$_[3]) } else { die } } my @x = (0,2); mysubstr('abcd',@x) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |