Leser: 13
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
package Sitescriptor::Module::Metatest::Dotcar; use Thirdparty::Config::Tiny; use Thirdparty::JSON::PP; # # das uebliche new() etc..... # sub upload_handler { my $Self = shift; #---- $Self->{'tinyobj'} = Config::Tiny->new(); # Open the config $Self->{'tinyobj'} = Config::Tiny->read( $Self->{'tinyfilename'} ); # Create a config return ; } sub json_handler { my $Self = shift; #---- if( exists $Self->{'tinyobj'} ) { $Self->{'json'} = JSON::PP->new->ascii->allow_nonref->allow_blessed->encode( $Self->{'tinyobj'} ); } return; }
1 2 3 4 5 6
Sitescriptor::Module::Metatest::Dotcar(Self); = bless( { "json" => "null", "tinyfilename" => "/Users/g/htdocs/_root_/aikxde/cgi-bin/tmp/20110304201025_1081-0.car", "tinyobj" => bless( { ... daten hier ... }, 'Config::Tiny_mod' ) }, 'Sitescriptor::Module::Metatest::Dotcar' )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#!/usr/bin/perl use strict; use warnings; use Config::Tiny; use JSON::PP; my $config_file = 'test.ini'; my $config_obj = Config::Tiny->new; my $config = $config_obj->read( $config_file ); my $json_obj = JSON::PP->new; my %hash = %{$config}; print $json_obj->encode( \%hash );
2011-03-06T10:25:17 reneeEin anderer Weg wäre natürlich, eine TO_JSON-Methode für das Config::Tiny-Objekt zu schreiben... Ist aber aufwändiger und je nach Anwendungsfall nicht notwendig.
2011-03-06T10:23:54 reneeDa das Objekt von Config::Tiny ja eine Hashreferenz ist, kannst Du es in einen Hash dereferenzieren. Dann übergibst Du an encode einfach die Referenz auf diesen Hash.
\%{ $Self->{'tinyobj'}}
1 2 3
my $json_obj = JSON::PP->new(); my %hash = %{$Self->{'tinyobj'}}; $Self->{'json'} = $json_obj->encode( \%hash );