我有一个带有偏移量的平面文件,例如第1行:char 1-3 = ID,4-19 =用户名,20-40 =姓氏,等等...
创建一个perl脚本以阅读此内容的最佳方法是什么?有没有什么办法可以使它基于不同的偏移量组而变得灵活?谢谢!
答案 0 :(得分:1)
如果位置/长度以Unicode代码点表示:
# Use :encoding(UTF-8) on the file handle.
my @fields = unpack('A3 A16 A21', $decoded_line);
如果位置/长度以字节为单位
use Encode qw( decode );
sub trim_end(_) { $_[0] =~ s/\s+\z//r }
# Use :raw on the file handle.
my @fields =
map trim_end(decode("UTF-8", $_)),
unpack('a3 a16 a21', $encoded_line);
在两种情况下,都会修剪尾随空白。