Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8067841
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T12:27:50+00:00 2026-06-05T12:27:50+00:00

Analyzing sources of CPAN modules I can see something like this: … package #

  • 0

Analyzing sources of CPAN modules I can see something like this:

...
package # hide from PAUSE
   Try::Tiny::ScopeGuard;
...

Obviously, it’s taken from Try::Tiny, but I have seen this kind of comments between package keyword and package identifier in other modules too.

Why this procedure is used? What is its goal and what benefits does it have?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T12:27:53+00:00Added an answer on June 5, 2026 at 12:27 pm

    It is indeed a hack to hide a package from PAUSE’s indexer.

    When a distribution is uploaded to PAUSE, the indexer will examine each file in the upload, looking for the names of packages that are included in the distribution. Any indexed packages can show up in CPAN search results.

    There are many reasons for not wanting the indexer to discover your packages. Your distribution may have many small or insignificant packages that would clutter up the search results for your module. You may have packages defined in your t (test) directory or some other non-standard directory that are not meant to be installed as part of the distribution. Your distribution may include files from a completely different distribution (that somebody else wrote).

    The hack works because the indexer strictly looks for the keyword package and an expression that looks like a package name on the same line.

    Nowadays, you can include a META.yml file with your distribution. The PAUSE indexer will look for and respect a no_index specification in this file. But this is a relatively new capability of the indexer so older modules and old-timer CPAN contributors will still use the line break hack.

    Here’s an example of a no_index spec from Forks::Super

    no_index:
        directory:
            - t
            - inc
        package:
            - Sys::CpuAffinity
            - Signals::XSIG
            - Signals::XSIG::Default
            - Signals::XSIG::TieArray56
    

    Sys::CpuAffinity and Signals::XSIG are separate distributions that are also packaged with Forks::Super. Some of the test scripts contain package declarations (e.g., Arbitrary::Test::Package) that shouldn’t be indexed.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is there a code analyzing utility that can do things like calculate the average
I was analyzing Javascript codes and came across this line: var date = (new
I'm analyzing an iOS 4 application for iPhone and I get this log: Leaked
I have an application and I am analyzing memory crash dumps of this software.
I am analyzing the repo script from Google (instructions at http://source.android.com/source/downloading.html ) The repo
I can't seem to find the proper audio source for recording/analyzing/receiving the currently played
Can anyone help in analysing this crash issue? The program did receive memory warning
While analyzing some ASP.NET MVC projects I got to see anonymous types scattered all
I am analyzing timestamped YouTube comments. Because some comments may refer to a period
I am analyzing some experimental data in the form of .tiff multi frames. Withins

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.