| Current Path : /proc/thread-self/root/proc/self/root/usr/share/doc/perl-Time-Moment/eg/ |
| Current File : //proc/thread-self/root/proc/self/root/usr/share/doc/perl-Time-Moment/eg/cbor.pl |
#!/usr/bin/perl
use strict;
use warnings;
use Time::Moment qw[];
use Time::HiRes qw[];
use CBOR::XS qw[encode_cbor];
sub filter {
my ($tag) = @_;
# http://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml
if ($tag == 0) { return Time::Moment->from_string($_[1]) }
elsif ($tag == 1) { return Time::Moment->from_epoch($_[1]) }
else { return &CBOR::XS::default_filter }
}
my $encoded = encode_cbor([
# Tag 0 is standard date/time string; see Section 2.4.1
CBOR::XS::tag(0, '2013-12-24T12:30:45.123456789+01:00'),
# Tag 1 is epoch-based date/time; see Section 2.4.1
CBOR::XS::tag(1, time),
CBOR::XS::tag(1, Time::HiRes::time),
# Serializes as tag 0
Time::Moment->now,
]);
my $decoded = CBOR::XS->new->filter(\&filter)->decode($encoded);
foreach my $moment (@$decoded) {
print $moment->to_string, "\n";
}