| Encoding-BER documentation | Contained in the Encoding-BER distribution. |
Encoding::BER::Dumper - Perl module for dumping Perl objects from/to BER
use Encoding::BER::Dumper; $ber = pl2ber( $perl ); $perl = ber2pl( $ber );
The following methods are exported:
ber2pl, pl2ber
Not all types of things perl can be encoded in BER.
Yellowstone National Park. Encoding::BER, Data::Dumper, XML::Dumper
Jeff Weisberg - http://www.tcp4me.com/
| Encoding-BER documentation | Contained in the Encoding-BER distribution. |
# -*- perl -*- # Copyright (c) 2007 by Jeff Weisberg # Author: Jeff Weisberg <jaw+pause @ tcp4me.com> # Created: 2007-Feb-04 16:43 (EST) # Function: dump perl data to/from ber # # $Id: Dumper.pm,v 1.5 2007/03/06 02:50:10 jaw Exp $ package Encoding::BER::Dumper; use Encoding::BER; use vars qw($VERSION); $VERSION = '1.00'; use strict; sub pl2ber { my $pl = shift; my $enc = Encoding::BER->new(acanonical => 1); $enc->encode($pl); } sub ber2pl { my $ber = shift; my $dec = Encoding::BER->new( ); $dec->add_tag('application', 'constructed', 'berdump_hash', 3); decanon($dec->decode($ber)); } sub decanon { my $n = shift; my $v = $n->{value}; return $v unless ref $v; my @v; for my $r (@$v){ push @v, decanon($r); } if( $n->{type}[2] eq 'berdump_hash' ){ return { @v }; }else{ return \@v; } } sub import { my $pkg = shift; my $caller = caller; for my $f ('pl2ber', 'ber2pl'){ no strict; my $fnc = $pkg->can($f); next unless $fnc; *{$caller . '::' . $f} = $fnc; } }
; 1;