Perl x Open Food Facts Hackathon: Paris, France - May 24-25 Learn more

#!/usr/bin/env perl
use strict;
# Item structure.
my $struct_hr = {
'glosses' => {
'cs' => {
'language' => 'cs',
'value' => 'Glosse cs',
},
'en' => {
'language' => 'en',
'value' => 'Glosse en',
},
},
'id' => 'ID',
'claims' => {
'P31' => [{
'mainsnak' => {
'datatype' => 'wikibase-item',
'datavalue' => {
'type' => 'wikibase-entityid',
'value' => {
'entity-type' => 'item',
'id' => 'Q5',
'numeric-id' => 5,
},
},
'property' => 'P31',
'snaktype' => 'value',
},
'rank' => 'normal',
'type' => 'statement',
}],
},
};
# Get object.
my $obj = struct2obj($struct_hr);
# Dump object.
p $obj;
# Output:
# Wikibase::Datatype::Sense {
# Parents Mo::Object
# public methods (7) : BUILD, can (UNIVERSAL), DOES (UNIVERSAL), check_array_object (Mo::utils), check_number_of_items (Mo::utils), isa (UNIVERSAL), VERSION (UNIVERSAL)
# private methods (1) : __ANON__ (Mo)
# internals: {
# glosses [
# [0] Wikibase::Datatype::Value::Monolingual,
# [1] Wikibase::Datatype::Value::Monolingual
# ],
# id "ID",
# statements [
# [0] Wikibase::Datatype::Statement
# ]
# }
# }