File Coverage

blib/lib/Acme/PSON.pm
Criterion Covered Total %
statement 38 38 100.0
branch 2 4 50.0
condition n/a
subroutine 13 13 100.0
pod 2 2 100.0
total 55 57 96.4


line stmt bran cond sub pod time code
1             package Acme::PSON;
2              
3 2     2   35176 use strict;
  2         4  
  2         70  
4 2     2   11 use warnings;
  2         3  
  2         253  
5              
6             our $VERSION = '0.05';
7              
8 2     2   19 use strict;
  2         9  
  2         58  
9 2     2   9 use warnings;
  2         3  
  2         69  
10 2     2   10 use vars qw( @EXPORT_OK );
  2         4  
  2         96  
11 2     2   10 use Carp;
  2         3  
  2         188  
12 2     2   3475 use Data::Dumper;
  2         34005  
  2         202  
13 2     2   2018 use Exporter::Lite;
  2         1770  
  2         14  
14             @EXPORT_OK = qw(obj2pson pson2obj);
15              
16 2     2   1987 use Readonly;
  2         6817  
  2         260  
17             Readonly my $VARNAME => 'PSON_VALUE';
18              
19             sub obj2pson {
20 1     1 1 14 my $obj = shift;
21              
22 1         4 local $Data::Dumper::Indent = 0;
23 1         11 local $Data::Dumper::Varname = $VARNAME;
24 1         19 return Dumper($obj);
25             }
26              
27             sub pson2obj {
28 1     1 1 134 my $str = shift;
29              
30 2     2   22 no strict;
  2         2  
  2         252  
31              
32 1 50       6 &_is_dumpeddata($str) ? eval($str) : croak "No PSON Data!";
33             }
34              
35             sub _is_dumpeddata {
36 1     1   3 my $str = shift;
37              
38 1 50       6 return ( $str =~ /^\$$VARNAME/ ) ? 1 : 0;
39             }
40              
41             1;
42              
43             =head1 NAME
44              
45             Acme::PSON - PSON(PerlScript Object Notation) Module
46              
47             =head1 SYNOPSIS
48              
49             use Acme::PSON qw(obj2pson pson2obj);
50              
51             my $data = { x=> 'adfs' , y => 'adf' };
52              
53             my $pson = obj2pson( $data );
54              
55             my $obj = pson2obj( $pson );
56              
57             =head1 DESCRIPTION
58              
59             Like L but use Dumper.
60              
61             =head1 METHOD
62              
63             =head2 obj2pson( $object )
64              
65             get pson data.
66              
67             =head2 pson2obj( $pson )
68              
69             get hash_ref or array_ref.
70              
71             =head1 AUTHOR
72              
73             Masahiro Funakoshi
74              
75             Tomohiro Teranishi
76              
77             =head1 COPYRIGHT AND LICENSE
78              
79             Copyright 2008 Tomohiro Teranishi.
80              
81             This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See L.
82              
83             =cut