/usr/share/perl5/BSON/Binary.pm is in libbson-perl 1.4.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | use 5.010001;
use strict;
use warnings;
package BSON::Binary;
# ABSTRACT: Legacy BSON type wrapper for binary data (DEPRECATED)
use version;
our $VERSION = 'v1.4.0';
our $TYPE_SIMPLE = 0x00;
our $TYPE_BYTES = 0x02;
our $TYPE_UUID = 0x03;
our $TYPE_MD5 = 0x05;
our $TYPE_USER_DEFINED = 0x80;
sub new {
my ( $class, $data, $type ) = @_;
$type ||= $TYPE_SIMPLE;
my $self = bless { type => $type }, $class;
$self->data($data);
return $self;
}
sub data {
my ( $self, $data ) = @_;
if ( defined $data ) {
$data = [ unpack( 'C*', $data ) ] unless ref $data eq 'ARRAY';
$self->{data} = $data;
}
return $self->{data};
}
sub type {
return $_[0]->{type};
}
# alias for compatibility with BSON::Bytes
sub subtype {
return $_[0]->{type};
}
sub to_s {
my $self = shift;
my @data = @{ $self->data };
return pack( 'l<C*', scalar(@data), $self->type, @data );
}
use overload '""' => \&to_s;
1;
=pod
=encoding UTF-8
=head1 NAME
BSON::Binary - Legacy BSON type wrapper for binary data (DEPRECATED)
=head1 VERSION
version v1.4.0
=head1 DESCRIPTION
This module has been deprecated as it was horribly inefficient (unpacking
binary data to individual single-byte elements of an array!) and had a
weird API that was not compatible with the existing MongoDB Binary wrapper
implementation on CPAN.
You are strongly encouraged to use L<BSON::Bytes> instead.
=for Pod::Coverage new data type subtype to_s
=head1 AUTHORS
=over 4
=item *
David Golden <david@mongodb.com>
=item *
Stefan G. <minimalist@lavabit.com>
=back
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2017 by Stefan G. and MongoDB, Inc.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
=cut
__END__
# vim: set ts=4 sts=4 sw=4 et tw=75:
|