SILENT KILLERPanel

Current Path: > > usr > share > perl5 >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/share/perl5/

NameTypeSizeLast ModifiedActions
Attribute Directory - -
B Directory - -
CPAN Directory - -
Class Directory - -
Compress Directory - -
Config Directory - -
DBM_Filter Directory - -
Devel Directory - -
ExtUtils Directory - -
File Directory - -
Getopt Directory - -
I18N Directory - -
IO Directory - -
IPC Directory - -
Locale Directory - -
Math Directory - -
Memoize Directory - -
Module Directory - -
Net Directory - -
Pod Directory - -
Search Directory - -
Term Directory - -
Text Directory - -
Thread Directory - -
Tie Directory - -
Time Directory - -
URI Directory - -
Unicode Directory - -
User Directory - -
encoding Directory - -
overload Directory - -
pod Directory - -
unicore Directory - -
vendor_perl Directory - -
warnings Directory - -
AnyDBM_File.pm File 2618 bytes July 28 2025 08:07:09.
AutoLoader.pm File 15797 bytes July 28 2025 08:07:09.
AutoSplit.pm File 19637 bytes July 28 2025 08:07:09.
Benchmark.pm File 31025 bytes July 28 2025 08:07:09.
CORE.pod File 3188 bytes July 28 2025 08:07:09.
DB.pm File 18922 bytes July 28 2025 08:07:09.
DBM_Filter.pm File 14385 bytes July 28 2025 08:07:09.
DirHandle.pm File 1556 bytes July 28 2025 08:07:09.
Dumpvalue.pm File 17556 bytes July 28 2025 08:07:09.
English.pm File 4761 bytes July 28 2025 08:07:09.
FileCache.pm File 5572 bytes July 28 2025 08:07:09.
FileHandle.pm File 6784 bytes July 28 2025 08:07:09.
FindBin.pm File 4561 bytes July 28 2025 08:07:09.
Internals.pod File 2576 bytes July 28 2025 08:07:09.
Memoize.pm File 36192 bytes July 28 2025 08:08:32.
NEXT.pm File 18846 bytes July 28 2025 08:07:09.
PerlIO.pm File 10459 bytes July 28 2025 08:07:09.
Safe.pm File 25082 bytes July 28 2025 08:07:09.
SelectSaver.pm File 1076 bytes July 28 2025 08:07:09.
SelfLoader.pm File 17692 bytes July 28 2025 08:08:32.
Symbol.pm File 4799 bytes July 28 2025 08:07:09.
Test.pm File 30057 bytes July 28 2025 08:08:32.
Thread.pm File 8287 bytes July 28 2025 08:07:09.
UNIVERSAL.pm File 6594 bytes July 28 2025 08:07:09.
URI.pm File 34790 bytes January 09 2018 06:42:55.
XSLoader.pm File 11267 bytes July 28 2025 08:07:09.
_charnames.pm File 33166 bytes July 28 2025 08:07:09.
autouse.pm File 4238 bytes July 28 2025 08:07:09.
base.pm File 10980 bytes July 28 2025 08:07:09.
blib.pm File 2086 bytes July 28 2025 08:07:09.
bytes.pm File 3754 bytes July 28 2025 08:07:09.
bytes_heavy.pl File 758 bytes July 28 2025 08:07:09.
charnames.pm File 20867 bytes July 28 2025 08:07:09.
deprecate.pm File 3079 bytes July 28 2025 08:07:09.
diagnostics.pm File 19038 bytes July 28 2025 08:07:09.
dumpvar.pl File 15555 bytes July 28 2025 08:07:09.
feature.pm File 17085 bytes July 28 2025 08:07:09.
fields.pm File 9489 bytes July 28 2025 08:07:09.
filetest.pm File 4003 bytes July 28 2025 08:07:09.
if.pm File 3340 bytes July 28 2025 08:07:09.
integer.pm File 3254 bytes July 28 2025 08:07:09.
less.pm File 3204 bytes July 28 2025 08:07:09.
locale.pm File 4855 bytes July 28 2025 08:07:09.
meta_notation.pm File 2117 bytes July 28 2025 08:07:09.
open.pm File 8021 bytes July 28 2025 08:08:32.
overload.pm File 53314 bytes July 28 2025 08:07:09.
overloading.pm File 1808 bytes July 28 2025 08:07:09.
perl5db.pl File 316420 bytes July 28 2025 08:07:09.
sigtrap.pm File 7606 bytes July 28 2025 08:07:09.
sort.pm File 6081 bytes July 28 2025 08:07:09.
strict.pm File 4738 bytes July 28 2025 08:07:09.
subs.pm File 848 bytes July 28 2025 08:07:09.
utf8.pm File 9116 bytes July 28 2025 08:07:09.
utf8_heavy.pl File 31615 bytes July 28 2025 08:07:09.
vars.pm File 2414 bytes July 28 2025 08:07:09.
vmsish.pm File 4313 bytes July 28 2025 08:07:09.
warnings.pm File 44756 bytes July 28 2025 08:07:09.

Reading File: //usr/share/perl5//strict.pm

package strict;

$strict::VERSION = "1.11";

my ( %bitmask, %explicit_bitmask );

BEGIN {
    # Verify that we're called correctly so that strictures will work.
    # Can't use Carp, since Carp uses us!
    # see also warnings.pm.
    die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2]
        if __FILE__ !~ ( '(?x) \b     '.__PACKAGE__.'  \.pmc? \z' )
        && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' );

    %bitmask = (
        refs => 0x00000002,
        subs => 0x00000200,
        vars => 0x00000400,
    );

    %explicit_bitmask = (
        refs => 0x00000020,
        subs => 0x00000040,
        vars => 0x00000080,
    );

    my $bits = 0;
    $bits |= $_ for values %bitmask;

    my $inline_all_bits = $bits;
    *all_bits = sub () { $inline_all_bits };

    $bits = 0;
    $bits |= $_ for values %explicit_bitmask;

    my $inline_all_explicit_bits = $bits;
    *all_explicit_bits = sub () { $inline_all_explicit_bits };
}

sub bits {
    my $bits = 0;
    my @wrong;
    foreach my $s (@_) {
        if (exists $bitmask{$s}) {
            $^H |= $explicit_bitmask{$s};

            $bits |= $bitmask{$s};
        }
        else {
            push @wrong, $s;
        }
    }
    if (@wrong) {
        require Carp;
        Carp::croak("Unknown 'strict' tag(s) '@wrong'");
    }
    $bits;
}

sub import {
    shift;
    $^H |= @_ ? &bits : all_bits | all_explicit_bits;
}

sub unimport {
    shift;

    if (@_) {
        $^H &= ~&bits;
    }
    else {
        $^H &= ~all_bits;
        $^H |= all_explicit_bits;
    }
}

1;
__END__

=head1 NAME

strict - Perl pragma to restrict unsafe constructs

=head1 SYNOPSIS

    use strict;

    use strict "vars";
    use strict "refs";
    use strict "subs";

    use strict;
    no strict "vars";

=head1 DESCRIPTION

The C<strict> pragma disables certain Perl expressions that could behave
unexpectedly or are difficult to debug, turning them into errors. The
effect of this pragma is limited to the current file or scope block.

If no import list is supplied, all possible restrictions are assumed.
(This is the safest mode to operate in, but is sometimes too strict for
casual programming.)  Currently, there are three possible things to be
strict about:  "subs", "vars", and "refs".

=over 6

=item C<strict refs>

This generates a runtime error if you 
use symbolic references (see L<perlref>).

    use strict 'refs';
    $ref = \$foo;
    print $$ref;	# ok
    $ref = "foo";
    print $$ref;	# runtime error; normally ok
    $file = "STDOUT";
    print $file "Hi!";	# error; note: no comma after $file

There is one exception to this rule:

    $bar = \&{'foo'};
    &$bar;

is allowed so that C<goto &$AUTOLOAD> would not break under stricture.


=item C<strict vars>

This generates a compile-time error if you access a variable that was
neither explicitly declared (using any of C<my>, C<our>, C<state>, or C<use
vars>) nor fully qualified.  (Because this is to avoid variable suicide
problems and subtle dynamic scoping issues, a merely C<local> variable isn't
good enough.)  See L<perlfunc/my>, L<perlfunc/our>, L<perlfunc/state>,
L<perlfunc/local>, and L<vars>.

    use strict 'vars';
    $X::foo = 1;	 # ok, fully qualified
    my $foo = 10;	 # ok, my() var
    local $baz = 9;	 # blows up, $baz not declared before

    package Cinna;
    our $bar;			# Declares $bar in current package
    $bar = 'HgS';		# ok, global declared via pragma

The local() generated a compile-time error because you just touched a global
name without fully qualifying it.

Because of their special use by sort(), the variables $a and $b are
exempted from this check.

=item C<strict subs>

This disables the poetry optimization, generating a compile-time error if
you try to use a bareword identifier that's not a subroutine, unless it
is a simple identifier (no colons) and that it appears in curly braces or
on the left hand side of the C<< => >> symbol.

    use strict 'subs';
    $SIG{PIPE} = Plumber;   # blows up
    $SIG{PIPE} = "Plumber"; # fine: quoted string is always ok
    $SIG{PIPE} = \&Plumber; # preferred form

=back

See L<perlmodlib/Pragmatic Modules>.

=head1 HISTORY

C<strict 'subs'>, with Perl 5.6.1, erroneously permitted to use an unquoted
compound identifier (e.g. C<Foo::Bar>) as a hash key (before C<< => >> or
inside curlies), but without forcing it always to a literal string.

Starting with Perl 5.8.1 strict is strict about its restrictions:
if unknown restrictions are used, the strict pragma will abort with

    Unknown 'strict' tag(s) '...'

As of version 1.04 (Perl 5.10), strict verifies that it is used as
"strict" to avoid the dreaded Strict trap on case insensitive file
systems.

=cut

SILENT KILLER Tool