The normal configuration is that pure Perl modules will go in the "sitelib" directory and XS modules go in the "sitearch" directory. You can have different perl binaries compiled with different configurations-- 32-bit v. 64-bit, single-thread v. multi-threaded, etc. The perl binaries can share the same pure Perl modules, but need to have separate shared libraries, so they are put in separate directories. "Crypt" by itself is not a module, just a directory.
Crypt::CAST5_PP is a pure Perl module, but
Crypt::CAST5 is not. The very important Crypt::CBC is only available as pure Perl.
You can find out the values of the configuration variables using the Config module:
use Config '%Config';
print "sitearch = $Config{archlib}\n";
From the shell, you can also use the -V option:
perl -V:sitearch. -V is handy, you can give it lists or regular expression arguments, and you can eval the output to set shell variables:
perl -V:'site.*'
eval `perl -V:'privlib privarch sitelib sitearch'`
ls $sitelib/Crypt
ls $sitearch/Crypt
That's backquotes on the eval line, you can also use
$( ), which is typographically clearer than backquotes and can be nested.
eval $(perl -V:'prefix version archname')
echo $prefix/lib/site_perl/$version/$archname