Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
2 answers
Perl modules sometimes have different implementations. The ::PP
suffix means it's a "Pure Perl" implementation, where portability is the goal. The ::XS
suffix is for the C-based implementation, where speed is the goal. Finally, JSON
is just the top-level module itself, i.e. the one you actually use.
This site has a good description of their differences, but to quote:
JSON
JSON.pm is a wrapper around
JSON::PP
andJSON::XS
- it also does a bunch of moderately crazy things for compatibility reasons, including extra shim code for very old perls [...]JSON::PP
This is the standard pure perl implementation, and if you're not performance dependent, there's nothing wrong with using it directly [...]
JSON::XS
Ridiculously fast JSON implementation in C. Absolutely wonderful [...]
Just installing the top-level JSON
module should work. The part about compatibility just means that both do the same thing, i.e. you should get the same output from both.
I installed the Perl JSON
module a few years ago on a RHEL server I managed and it was a really straightforward process: just install (or build) the module from CPAN and done. (Note that this is just an example and you may want to look for more recent versions.)
Installing should be a simple case of either using the OS package manager (if in GNU+Linux), using the cpan
utility, or building from source. The OS package manager is recommended because it helps keep things updated automatically.
To verify that it's installed, just try the following command from the terminal (assuming GNU+Linux):
$ perl -e 'use JSON;'
If it doesn't complain, then you should be good to go. If you get errors, then you should get ready to go in an adventure.
0 comment threads
Realistically in 2024, you should be using Cpanel::JSON::XS
, and JSON::MaybeXS
. Cpanel::JSON::XS
is by far the best JSON implementation for Perl, but not every platform will have it, so you can use JSON::MaybeXS
to include the "best" JSON implementation for the current platform. Which could be any of Cpanel::JSON::XS
(best), JSON::XS
, JSON::PP
, or JSON
.
0 comment threads