在其他语言中,我使用过Erlang和Python,如果我分割字符串并且不关心其中一个字段,我可以使用下划线占位符.我在Perl中试过这个:
(_,$id) = split('=',$fields[1]);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
无法修改./generate_datasets.pl第17行中列表赋值中的常量项,靠近");"
由于编译错误,./generate_datasets.pl的执行被中止.
Perl是否有类似的模式,我可以使用而不是创建一个无用的临时变量?
gee*_*aur 40
undef 在Perl中服务于同样的目的.
(undef, $something, $otherthing) = split(' ', $str);
Run Code Online (Sandbox Code Playgroud)
too*_*lic 17
如果使用切片,则甚至不需要占位符:
use warnings;
use strict;
my ($id) = (split /=/, 'foo=id123')[1];
print "$id\n";
__END__
id123
Run Code Online (Sandbox Code Playgroud)
你可以分配给(undef).
(undef, my $id) = split(/=/, $fields[1]);
Run Code Online (Sandbox Code Playgroud)
你甚至可以使用my (undef).
my (undef, $id) = split(/=/, $fields[1]);
Run Code Online (Sandbox Code Playgroud)
您还可以使用列表切片.
my $id = ( split(/=/, $fields[1]) )[1];
Run Code Online (Sandbox Code Playgroud)