Perl-如何根据不同的字符长度分割一行

jam*_*nov 3 perl split

我想根据多个字符长度拆分一行,并将它们存储在单独的变量中.
例如:$myString = "Mickey 24 USA alive
这里前12个字符是用户名,接下来2个是年龄,接下来23个字符是国家,接下来7个是状态.
那么有没有办法保存它们单独存储使用split()s///
谢谢,

Bor*_*din 8

使用unpack内置函数可以最简单有效地解压缩固定宽度字段.

像这样

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__
Run Code Online (Sandbox Code Playgroud)

产量

"Mickey      "
"24"
"                    USA"
" alive"
Run Code Online (Sandbox Code Playgroud)