# devel/p5-circular-require - The NetBSD Packages Collection

Perl5 module to detect circularity in use/require statements

    Perl by default just ignores cycles in require statements - if Foo.pm does
    use Bar and Bar.pm does use Foo, doing use Foo elsewhere will start loading
    Foo.pm, then hit the use statement, start loading Bar.pm, hit the use
    statement, notice that Foo.pm has already started loading and ignore it,
    and continue loading Bar.pm. But Foo.pm hasn't finished loading yet, so if
    Bar.pm uses anything from Foo.pm (which it likely does, if it's loading it),
    those won't be accessible while the body of Bar.pm is being executed. This
    can lead to some very confusing errors, especially if introspection is
    happening at load time (make_immutable in Moose classes, for example). This
    module generates a warning whenever a module is skipped due to being loaded,
    if that module has not finished executing.

    This module works as a pragma, and typically pragmas have lexical scope.
    Lexical scope doesn't make a whole lot of sense for this case though,
    because the effect it's tracking isn't lexical (what does it mean to disable
    the pragma inside of a cycle vs. outside of a cycle? does disabling it
    within a cycle cause it to always be disabled for that cycle, or only if
    it's disabled at the point where the warning would otherwise be generated?
    etc.), but dynamic scope (the scope that, for instance, local uses) does,
    and that's how this module works. Saying no circular::require enables the
    module for the current dynamic scope, and use circular::require disables
    it for the current dynamic scope. Hopefully, this will just do what you mean.

- Source version: `p5-circular-require-0.12nb8`
- Maintainer: pkgsrc-users AT NetBSD.org
- Website: https://metacpan.org/release/circular-require
- License: gnu-gpl-v2
- Package history: cvs, hg, git

## Build dependencies

pkgtools/mktools pkgtools/cwrappers

## Runtime dependencies

devel/p5-Package-Stash devel/p5-Devel-OverrideGlobalRequire lang/perl5 lang/perl5

## Binary packages

OS | Architecture | Version
--- | --- | ---
NetBSD 10.0 | aarch64 | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | aarch64 | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | aarch64eb | p5-circular-require-0.12nb7.tgz
NetBSD 10.0 | alpha | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | earmv4 | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | earmv4 | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | earmv6hf | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | earmv6hf | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | earmv7hf | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | earmv7hf | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | i386 | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | i386 | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | powerpc | p5-circular-require-0.12nb7.tgz
NetBSD 10.0 | powerpc | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | powerpc | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | sh3el | p5-circular-require-0.12nb7.tgz
NetBSD 10.0 | sparc64 | p5-circular-require-0.12nb6.tgz
NetBSD 10.0 | vax | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | x86_64 | p5-circular-require-0.12nb8.tgz
NetBSD 10.0 | x86_64 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | aarch64 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | aarch64 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | aarch64eb | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | aarch64eb | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | earmv6hf | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | earmv6hf | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | earmv7hf | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | earmv7hf | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | i386 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | i386 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | m68k | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | m68k | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | powerpc | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | powerpc | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | riscv64 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | riscv64 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | riscv64 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | sh3el | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | sh3el | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | x86_64 | p5-circular-require-0.12nb8.tgz
NetBSD 11.0 | x86_64 | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | aarch64 | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | aarch64 | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | earmv6hf | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | earmv6hf | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | earmv7hf | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | earmv7hf | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | i386 | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | i386 | p5-circular-require-0.12nb8.tgz
NetBSD 9.0 | powerpc | p5-circular-require-0.12nb7.tgz
NetBSD 9.0 | x86_64 | p5-circular-require-0.12nb8.tgz

Binary packages can be installed with the high-level tool pkgin (which can be installed with pkg_add) or pkg_add(1) (installed by default). The NetBSD packages collection is also designed to permit easy installation from source.

## Available build options

(none)

## Known vulnerabilities

(no vulnerabilities known)

The pkg_admin audit command locates any installed package which has been mentioned in security advisories as having vulnerabilities.

Please note the vulnerabilities database might not be fully accurate, and not every bug is exploitable with every configuration.

Problem reports, updates or suggestions for this package should be reported with send-pr.