我想根据多个字符长度拆分一行并将它们存储在单独的变量中。
例如:$myString = "Mickey 24 USA alive
这里前 12 个字符是用户名,接下来的 2 个字符是年龄,接下来的 23 个字符是国家,接下来的 7 个字符是状态。
那么有没有办法使用 split()
单独保存它们?或 s///
?
谢谢,
最佳答案
使用 unpack
built-in function 可以最简单有效地完成对固定宽度字段的拆包。 .
像这样
use strict;
use warnings;
my $my_string = 'Mickey 24 USA alive';
my ($username, $age, $country, $status) = unpack 'a12 a2 a23 a7', $my_string;
print <<__END_OUTPUT__;
"$username"
"$age"
"$country"
"$status"
__END_OUTPUT__
输出
"Mickey "
"24"
" USA"
" alive"
关于Perl-如何根据不同的字符长度拆分一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948283/