home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / perl5 / JSON / PP58.pm < prev   
Encoding:
Perl POD Document  |  2009-10-16  |  1.9 KB  |  94 lines

  1. package JSON::PP58;
  2.  
  3. use 5.008;
  4. use strict;
  5.  
  6. my @properties;
  7.  
  8. $JSON::PP58::VERSION = '1.03';
  9.  
  10.  
  11. BEGIN {
  12.  
  13.     unless ( defined &utf8::is_utf8 ) {
  14.        require Encode;
  15.        *utf8::is_utf8 = *Encode::is_utf8;
  16.     }
  17.  
  18.     *JSON::PP::JSON_PP_encode_ascii      = \&JSON::PP::_encode_ascii;
  19.     *JSON::PP::JSON_PP_encode_latin1     = \&JSON::PP::_encode_latin1;
  20.     *JSON::PP::JSON_PP_decode_surrogates = \&JSON::PP::_decode_surrogates;
  21.     *JSON::PP::JSON_PP_decode_unicode    = \&JSON::PP::_decode_unicode;
  22.  
  23.     if ($] >= 5.008 and $] < 5.008003) { # join() in 5.8.0 - 5.8.2 is broken.
  24.         package JSON::PP;
  25.         require subs;
  26.         subs->import('join');
  27.         eval q|
  28.             sub join {
  29.                 return '' if (@_ < 2);
  30.                 my $j   = shift;
  31.                 my $str = shift;
  32.                 for (@_) { $str .= $j . $_; }
  33.                 return $str;
  34.             }
  35.         |;
  36.     }
  37.  
  38. }
  39.  
  40.  
  41. sub JSON::PP::incr_parse {
  42.     local $Carp::CarpLevel = 1;
  43.     ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_parse( @_ );
  44. }
  45.  
  46.  
  47. sub JSON::PP::incr_text : lvalue {
  48.     $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
  49.  
  50.     if ( $_[0]->{_incr_parser}->{incr_parsing} ) {
  51.         Carp::croak("incr_text can not be called when the incremental parser already started parsing");
  52.     }
  53.     $_[0]->{_incr_parser}->{incr_text};
  54. }
  55.  
  56.  
  57. sub JSON::PP::incr_skip {
  58.     ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_skip;
  59. }
  60.  
  61.  
  62. sub JSON::PP::incr_reset {
  63.     ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_reset;
  64. }
  65.  
  66.  
  67. 1;
  68. __END__
  69.  
  70. =pod
  71.  
  72. =head1 NAME
  73.  
  74. JSON::PP58 - Helper module in using JSON::PP in Perl 5.8 and lator
  75.  
  76. =head1 DESCRIPTION
  77.  
  78. JSON::PP calls internally.
  79.  
  80. =head1 AUTHOR
  81.  
  82. Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
  83.  
  84.  
  85. =head1 COPYRIGHT AND LICENSE
  86.  
  87. Copyright 2008-2009 by Makamaka Hannyaharamitu
  88.  
  89. This library is free software; you can redistribute it and/or modify
  90. it under the same terms as Perl itself. 
  91.  
  92. =cut
  93.  
  94.