404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.188.56.48: ~ $
package locale;

our $VERSION = '1.09';
use Config;

$Carp::Internal{ (__PACKAGE__) } = 1;

# A separate bit is used for each of the two forms of the pragma, to save
# having to look at %^H for the normal case of a plain 'use locale' without an
# argument.

$locale::hint_bits = 0x4;
$locale::partial_hint_bits = 0x10;  # If pragma has an argument

# The pseudo-category :characters consists of 2 real ones; but it also is
# given its own number, -1, because in the complement form it also has the
# side effect of "use feature 'unicode_strings'"

sub import {
    shift;  # should be 'locale'; not checked

    $^H{locale} = 0 unless defined $^H{locale};
    if (! @_) { # If no parameter, use the plain form that changes all categories
        $^H |= $locale::hint_bits;

    }
    else {
        my @categories = ( qw(:ctype :collate :messages
                              :numeric :monetary :time) );
        for (my $i = 0; $i < @_; $i++) {
            my $arg = $_[$i];
            $complement = $arg =~ s/ : ( ! | not_ ) /:/x;
            if (! grep { $arg eq $_ } @categories, ":characters") {
                require Carp;
                Carp::croak("Unknown parameter '$_[$i]' to 'use locale'");
            }

            if ($complement) {
                if ($i != 0 || $i < @_ - 1)  {
                    require Carp;
                    Carp::croak("Only one argument to 'use locale' allowed"
                                . "if is $complement");
                }

                if ($arg eq ':characters') {
                    push @_, grep { $_ ne ':ctype' && $_ ne ':collate' }
                                  @categories;
                    # We add 1 to the category number;  This category number
                    # is -1
                    $^H{locale} |= (1 << 0);
                }
                else {
                    push @_, grep { $_ ne $arg } @categories;
                }
                next;
            }
            elsif ($arg eq ':characters') {
                push @_, ':ctype', ':collate';
                next;
            }

            $^H |= $locale::partial_hint_bits;

            # This form of the pragma overrides the other
            $^H &= ~$locale::hint_bits;

            $arg =~ s/^://;

            eval { require POSIX; import POSIX 'locale_h'; };

            # Map our names to the ones defined by POSIX
            my $LC = "LC_" . uc($arg);

            my $bit = eval "&POSIX::$LC";
            if (defined $bit) { # XXX Should we warn that this category isn't
                                # supported on this platform, or make it
                                # always be the C locale?

                # Verify our assumption.
                if (! ($bit >= 0 && $bit < 31)) {
                    require Carp;
                    Carp::croak("Cannot have ':$arg' parameter to 'use locale'"
                              . " on this platform.  Use the 'perlbug' utility"
                              . " to report this problem, or send email to"
                              . " 'perlbug\@perl.org'.  $LC=$bit");
                }

                # 1 is added so that the pseudo-category :characters, which is
                # -1, comes out 0.
                $^H{locale} |= 1 << ($bit + 1);
            }
        }
    }

}

sub unimport {
    $^H &= ~($locale::hint_bits|$locale::partial_hint_bits);
    $^H{locale} = 0;
}

1;

Filemanager

Name Type Size Permission Actions
Carp Folder 0755
Exporter Folder 0755
File Folder 0755
Getopt Folder 0755
Hash Folder 0755
IO Folder 0755
IPC Folder 0755
List Folder 0755
Scalar Folder 0755
Text Folder 0755
Tie Folder 0755
auto Folder 0755
unicore Folder 0755
warnings Folder 0755
AutoLoader.pm File 5.36 KB 0644
Carp.pm File 19.68 KB 0644
Config.pm File 3.29 KB 0644
Config_git.pl File 409 B 0644
Config_heavy.pl File 53.2 KB 0644
Cwd.pm File 18.1 KB 0644
DynaLoader.pm File 10.23 KB 0644
Errno.pm File 4.82 KB 0644
Exporter.pm File 2.31 KB 0644
Fcntl.pm File 2.11 KB 0644
FileHandle.pm File 2.06 KB 0644
IO.pm File 469 B 0644
POSIX.pm File 19.72 KB 0644
SelectSaver.pm File 344 B 0644
Socket.pm File 13.24 KB 0644
Symbol.pm File 2.05 KB 0644
XSLoader.pm File 3.83 KB 0644
attributes.pm File 3.03 KB 0644
base.pm File 8.72 KB 0644
bytes.pm File 447 B 0644
bytes_heavy.pl File 758 B 0644
constant.pm File 5.6 KB 0644
feature.pm File 4.39 KB 0644
fields.pm File 4.9 KB 0644
integer.pm File 172 B 0644
lib.pm File 2.23 KB 0644
locale.pm File 3.34 KB 0644
overload.pm File 4.34 KB 0644
overloading.pm File 964 B 0644
parent.pm File 478 B 0644
re.pm File 8.5 KB 0644
strict.pm File 1.57 KB 0644
utf8.pm File 342 B 0644
utf8_heavy.pl File 30.87 KB 0644
vars.pm File 1.12 KB 0644
warnings.pm File 21.44 KB 0644