$k="1.3.6.1.4.1.1588.2.1.1.1.6.2.1.37.32";
@a= split('\.',$k);
print @a[-1]; # WORKS!
print (split '\.',$k)[-1]; # Fails: not proper syntax.`
Run Code Online (Sandbox Code Playgroud)
我想打印拆分的最后一个元素而不必使用中间变量.有没有办法做到这一点?我正在使用Perl 5.14.
sim*_*que 19
Perl将开括号归因(
于打印功能.语法错误来自于print()
无法遵循的[-1]
.即使print
和之间有空格()
.+
如果您不想为自己添加parens,则需要在括号前添加一个强制列表上下文的符号print
.
print +(split'\.', $k)[-1];
Run Code Online (Sandbox Code Playgroud)
如果您没有将语法用作期望具有parens的参数,那么它也将以您尝试的方式工作.
my $foo = (split '\.', $k)[-1];
print $foo;
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式捕获,而不是创建完整列表并将其切片以获取最后一个元素:
use strict;
use warnings;
my $k = "1.3.6.1.4.1.1588.2.1.1.1.6.2.1.37.32";
my ($last) = $k =~ /(\d+)$/;
print $last;
Run Code Online (Sandbox Code Playgroud)
输出:
32
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8166 次 |
最近记录: |