我需要将输入文件的行拆分为其列。
ATOM 0 HB3 ALA C 999 28.811 -7.680 12.279 1.00 57.53 H
ATOM 7637 N PRO C1000 27.299 -5.667 10.647 1.00216.82 N
我的代码工作正常,只要第6列<1000,或短于4位:
($ATOM, $atom_num, $atom_type, $res, $chain, $res_num) = split(" ", $pdb)
但是,只要第6列达到1000,它就不再区分这两列。我不是perl的专家,但我正在处理的代码是perl,所以我需要弄清楚如何拆分它,例如按每列的位数。有什么建议?
我通过使用unpack并定义每列的长度来解决它。 $ format ='A6 A6 A5 A4 A1 A5'; ($ ATOM,$ atom_num,$ atom_type,$ res,$ chain,$ res_num)= unpack($ format,$ pdb);