#! This file contains a definitive example of an internal data structure #! produced by the COD::CIF::Parser. This file is itself parsable by Perl. #! #! Based on the 'cod-tools' documentation example. my @cif = ( \%cif_datablock, \%cif_datablock_2 ); my %cif_datablock = ( name => "datablock_name", # From data_datablock_name values => { _tag => [ "value" ], _tag2 => [ "10.1" ], _looped_tag_1 => [ "val1", "val2", "val3" ], _looped_tag_2 => [ "1.2(2)", "2.3", "3.40(12)" ], _looped_tag_3 => [ "val1", "val2", "val3" ], _looped_tag_4 => [ "11.2(2)", "22.3", "13.40(12)" ], }, precisions => { _tag2 => [ 0.33 ], _looped_tag_2 => [ 0.2, undef, 0.12 ], _looped_tag_4 => [ 0.2, undef, 0.12 ], }, types => { _tag => [ "DQSTRING" ], _tag2 => [ "FLOAT" ], _looped_tag_1 => [ "DQSTRING", "SQSTRING", "UQSTRING" ], _looped_tag_2 => [ "FLOAT", "FLOAT", "FLOAT" ], _looped_tag_3 => [ "DQSTRING", "DQSTRING", "DQSTRING" ], _looped_tag_4 => [ "FLOAT", "FLOAT", "FLOAT" ], }, tags => [ "_tag", "_tag2", "_looped_tag_1", "_looped_tag_2", "_looped_tag_3", "_looped_tag_4" ], loops => [ [ "_looped_tag_1", "_looped_tag_2" ], [ "_looped_tag_3", "_looped_tag_4" ], ], inloop => { _looped_tag_1 => 0, # Index of the loop in the $cif_datablock{loops} array. _looped_tag_2 => 0, _looped_tag_3 => 1, _looped_tag_4 => 1, }, save_blocks => [ \%save_datablock_has_the_same_structure_as_a_cif_datablock, \%another_save_datablock ] );