我是Perl的新手并且正在尝试一下.我有这个代码:
use Digest::MD5 'md5';
use Data::Dumper::Perltidy;
my $data = "x";
my $digest = md5($data);
# print first 6 elements
print Dumper map(ord, split(//, $digest))[0..5];
Run Code Online (Sandbox Code Playgroud)
但是因语法错误而失败.我记得PHP有类似的问题,他们计划在未来的版本中解决这个问题.Perl是否还有这个问题,或者它只是错误的方法吗?怎么会是正确的方法?
Eug*_*ash 10
你需要map用parens 包围切片才能工作,例如:
print Dumper( ( map ord, split(//, $digest) )[0..5] );
Run Code Online (Sandbox Code Playgroud)
您正在尝试将下标应用于地图函数,而不是它的值.
print Dumper +( map(ord, split(//, $a) ))[0 .. 5];
Run Code Online (Sandbox Code Playgroud)
会做你期望的.请注意使用+符号以解决歧义.