【发布时间】:2014-10-16 08:24:31
【问题描述】:
以下行带有固定:
my $line = 'ATOM 1 P CYT B 3 42.564 -34.232 -7.330 1.00105.08 P'
使用以下 sprintf 创建。
@entr = ( 'ATOM', '1', 'P', 'CYT', 'B', '3', '42.564', '-34.232', '-7.330', '1.00', '105.08', 'P' );
print sprintf("%-6s%5d %-4s%3s %1s%4d %8.3f%8.3f%8.3f%6.2f%6.2f %2s\n",@newentr)
我想做的是反转这个过程。
即以$line 作为输入,创建看起来与@entr 完全相同的数组。
如何在 Perl 中实现这一点?
【问题讨论】:
-
我换行了(
CYTvsC)。 -
@choroba:我更新了
@entr。 -
两个十进制数字直接相邻 (
1.00105.08) 不是很清楚...$line应该是人类可读的吗? -
@ialarmedalien:这正是我们需要解包的原因。该列由fixed with定义。
标签: arrays perl printf pack unpack