Apache-Session-MongoDB

 view release on metacpan or  search on metacpan

lib/Apache/Session/Serialize/MongoDB.pm  view on Meta::CPAN

    my $session = shift;
    &restoreSpecialCharacters( $session->{data} );
}

sub replaceSpecialCharacters {
    my $data = shift;

    foreach my $key ( keys %$data ) {
        if ( $key =~ /(\.|\$)/ ) {
            my $oldkey = $key;
            $key =~ s:\$:\\u0024:g;
            $key =~ s:\.:\\u002e:g;
            $data->{$key} = $data->{$oldkey};
            delete $data->{$oldkey};
        }
        if ( ref( $data->{$key} ) eq 'HASH' ) {
            &replaceSpecialCharacters( $data->{$key} );
        }
    }
}

sub restoreSpecialCharacters {
    my $data = shift;

    foreach my $key ( keys %$data ) {
        if ( $key =~ /(\\u0024|\\u002e)/ ) {
            my $oldkey = $key;
            $key =~ s:\\u0024:\$:g;
            $key =~ s:\\u002e:.:g;
            $data->{$key} = $data->{$oldkey};
            delete $data->{$oldkey};
        }
        if ( ref( $data->{$key} ) eq 'HASH' ) {
            &restoreSpecialCharacters( $data->{$key} );
        }
    }
}



( run in 0.652 second using v1.01-cache-2.11-cpan-7add2cbd662 )