Kwalitee Issues


Pack the distribution with a proper command such as "make dist" and "./Build dist", or use a distribution builder such as Dist::Zilla, Dist::Milla, Minilla.

Error: More than one top directories are found: dist.ini;README;;._MYMETA.yml;._Changes;lib;._META.json;MYMETA.yml;t;._dist.ini;META.json;._MANIFEST;._LICENSE;Changes;INSTALL;;._t;._README;MANIFEST;LICENSE;._lib


Add a Makefile.PL (for ExtUtils::MakeMaker/Module::Install) or a Build.PL (for Module::Build and its friends), or use a distribution builder such as Dist::Zilla, Dist::Milla, Minilla.


Add a META.yml to the distribution. Your buildtool should be able to autogenerate it.


Run a proper command ("make manifest" or "./Build manifest", maybe with a force option), or use a distribution builder to generate the MANIFEST. Or update MANIFEST manually.


  • MANIFEST (9) does not match dist (33):
  • Missing in MANIFEST: ._Changes, ._LICENSE, ._MANIFEST, ._META.json, ._MYMETA.yml, ._README, ._dist.ini, ._lib, ._t,, MYMETA.yml, lib/.DS_Store, lib/._.DS_Store, lib/._Net, lib/Net/.DS_Store, lib/Net/._.DS_Store, lib/Net/._SMS, lib/Net/SMS/.DS_Store, lib/Net/SMS/._.DS_Store, lib/Net/SMS/, t/.DS_Store, t/._.DS_Store, t/._000-load.t,


Take a look at the META.json Spec at (for version 1.4) or (for version 2), and change your META.json accordingly.


Upgrade your META.json generator so it produces valid JSON.

Error: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 90 (before "\x{201c}Stefan Certi...")


Update MANIFEST.SKIP to exclude MYMETA files. If you are lazy, add "#!install_default" in your MANIFEST.SKIP and update your ExtUtils::Manifest if necessary, then some of the most common files will be excluded.


Fix the version(s).


Add 'use strict' (or its equivalents) to all modules, or convince us that your favorite module is well-known enough and people can easily see the modules are strictly written.

Error: Net::SMS::._CSNetworks


Add tests or move to the t/ directory!


If you are using Build.PL define the {requires}{perl} = VERSION field. If you are using MakeMaker (Makefile.PL) you should upgrade ExtUtils::MakeMaker to 6.48 and use MIN_PERL_VERSION parameter. Perl::MinimumVersion can help you determine which version of Perl your module needs.


If you use Mac OS X, set COPYFILE_DISABLE (for OS 10.5 and better) or COPY_EXTENDED_ATTRIBUTES_DISABLE (for OS 10.4) environmental variable to true to exclude dot underscore files from a distribution.


  • ._Changes
  • ._META.json
  • ._MYMETA.yml
  • ._README
  • ._dist.ini
  • ._lib
  • ._t
  • lib/._.DS_Store
  • lib/._Net
  • lib/Net/._.DS_Store
  • lib/Net/._SMS
  • lib/Net/SMS/._.DS_Store
  • lib/Net/SMS/
  • t/._.DS_Store
  • t/._000-load.t


Fix the version numbers so that version::is_lax($version) returns true.


  • lib/Net/SMS/ HASH(0x771d470)


Add 'use warnings' (or its equivalents) to all modules (this will require perl > 5.6), or convince us that your favorite module is well-known enough and people can easily see the modules warn when something bad happens.

Error: Net::SMS::._CSNetworks


Add all modules contained in this distribution to the META.yml field 'provides'. Module::Build or Dist::Zilla::Plugin::MetaProvides do this automatically for you.


Add a 'repository' resource to the META.yml via 'meta_add' accessor (for Module::Build) or META_ADD parameter (for ExtUtils::MakeMaker).


Name Abstract Version View
Net::SMS::CSNetworks Send SMS messages via the CSNetworks HTTP API metacpan

Other Files

Changes metacpan
MANIFEST metacpan
META.json metacpan
README metacpan
dist.ini metacpan