diff lib/json.pm @ 0:be582bcd6585 draft

Master branch Updating - - Fxx
author fgiacomoni
date Thu, 04 Oct 2018 10:37:14 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/json.pm	Thu Oct 04 10:37:14 2018 -0400
@@ -0,0 +1,152 @@
+package lib::json ;
+
+use strict;
+use warnings ;
+use Exporter ;
+use Carp ;
+
+use Data::Dumper ;
+
+## dedicate lib
+use JSON qw( );
+
+use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
+
+our $VERSION = "1.0";
+our @ISA = qw(Exporter);
+our @EXPORT = qw(decode_json_file);
+our %EXPORT_TAGS = ( ALL => [qw(decode_json_file)] );
+
+=head1 NAME
+
+My::Module - An example module
+
+=head1 SYNOPSIS
+
+    use My::Module;
+    my $object = My::Module->new();
+    print $object->as_string;
+
+=head1 DESCRIPTION
+
+This module does not really exist, it
+was made for the sole purpose of
+demonstrating how POD works.
+
+=head1 METHODS
+
+Methods are :
+
+=head2 METHOD new
+
+	## Description : new
+	## Input : $self
+	## Ouput : bless $self ;
+	## Usage : new() ;
+
+=cut
+
+sub new {
+    ## Variables
+    my $self={};
+    bless($self) ;
+    return $self ;
+}
+### END of SUB
+     
+=head2 METHOD decode_json_file
+
+	## Description : decode a json file and return a json perl object
+	## Input : $ref_file
+	## Output : $ojson
+	## Usage : my ( $ojson ) = decode_json_file( $file ) ;
+	
+=cut
+## START of SUB
+sub decode_json_file {
+	## Retrieve Values
+    my $self = shift ;
+    my ( $ref_file ) = @_ ;
+    
+    my $ojson = undef ;
+    
+    if ( ( defined $ref_file ) and ( -e $$ref_file ) ) {
+    	my $filename = $$ref_file ;
+    	my $json_text = do {
+			open( my $json_fh, "<:encoding(UTF-8)", $filename) or die("Can't open \$filename\": $!\n");
+			local $/;
+			<$json_fh>
+		};
+		
+		my $json = JSON->new;
+		$ojson = $json->decode($json_text);
+    }
+    else {
+    	croak "Can't decode any file : it doesn't exist or defined\n" ;
+    }
+    return(\$ojson) ;
+}
+## END of SUB
+
+=head2 METHOD decode_json_stdout
+
+	## Description : decode a perl unicode string and return a json perl object
+	## Input : $stdout
+	## Output : $perl_scalar
+	## Usage : my ( $perl_scalar ) = decode_json_stdout( $stdout ) ;
+	
+=cut
+## START of SUB
+sub decode_json_stdout {
+	## Retrieve Values
+    my $self = shift ;
+    my ( $stdout ) = @_ ;
+    
+    my $perl_scalar = undef ;
+    if ( defined $stdout ) {
+    	my $string = $$stdout ;
+#    	$string =~ s/\\/\\\\/g ; ## bug patched : jsons are clean now
+    	    	
+    	$perl_scalar = JSON->new->decode($string) ;
+    }
+    else {
+    	croak "Can't decode any string : it doesn't defined\n" ;
+    }
+    return(\$perl_scalar) ;
+}
+## END of SUB
+
+1 ;
+
+
+__END__
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc XXX.pm
+
+=head1 Exports
+
+=over 4
+
+=item :ALL is ...
+
+=back
+
+=head1 AUTHOR
+
+Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>
+
+=head1 LICENSE
+
+This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 VERSION
+
+version 1 : xx / xx / 201x
+
+version 2 : ??
+
+=cut
\ No newline at end of file