/snap/gh/640/usr/share/perl/5.38.2
NameSizeModeActions
App/-0755rm
Archive/-0755rm
Attribute/-0755rm
autodie/-0755rm
B/-0755rm
Carp/-0755rm
Class/-0755rm
Compress/-0755rm
Config/-0755rm
CPAN/-0755rm
DBM_Filter/-0755rm
Devel/-0755rm
Digest/-0755rm
Encode/-0755rm
encoding/-0755rm
Exporter/-0755rm
ExtUtils/-0755rm
File/-0755rm
Filter/-0755rm
Getopt/-0755rm
HTTP/-0755rm
I18N/-0755rm
IO/-0755rm
IPC/-0755rm
JSON/-0755rm
Locale/-0755rm
Math/-0755rm
Memoize/-0755rm
Module/-0755rm
Net/-0755rm
overload/-0755rm
Params/-0755rm
Parse/-0755rm
Perl/-0755rm
PerlIO/-0755rm
Pod/-0755rm
pod/-0755rm
Search/-0755rm
TAP/-0755rm
Term/-0755rm
Test/-0755rm
Test2/-0755rm
Text/-0755rm
Thread/-0755rm
Tie/-0755rm
Time/-0755rm
Unicode/-0755rm
unicore/-0755rm
User/-0755rm
version/-0755rm
warnings/-0755rm
AnyDBM_File.pm26180644editdlrm
autodie.pm124360644editdlrm
AutoLoader.pm157970644editdlrm
AutoSplit.pm196370644editdlrm
autouse.pm42380644editdlrm
base.pm109610644editdlrm
Benchmark.pm310230644editdlrm
bigfloat.pm219680644editdlrm
bigint.pm232470644editdlrm
bignum.pm282170644editdlrm
bigrat.pm211340644editdlrm
blib.pm20620644editdlrm
builtin.pm103920644editdlrm
bytes.pm37820644editdlrm
bytes_heavy.pl7580644editdlrm
Carp.pm359940644editdlrm
charnames.pm210490644editdlrm
constant.pm147240644editdlrm
CORE.pod31880644editdlrm
CPAN.pm1479710644editdlrm
DB.pm189220644editdlrm
DBM_Filter.pm143850644editdlrm
deprecate.pm50360644editdlrm
diagnostics.pm193340644editdlrm
Digest.pm112250644editdlrm
DirHandle.pm20850644editdlrm
Dumpvalue.pm176680644editdlrm
dumpvar.pl155550644editdlrm
English.pm47610644editdlrm
Env.pm55690644editdlrm
experimental.pm89300644editdlrm
Exporter.pm192120644editdlrm
Fatal.pm592360644editdlrm
feature.pm545970644editdlrm
fields.pm94750644editdlrm
FileCache.pm55490644editdlrm
FileHandle.pm68050644editdlrm
filetest.pm40030644editdlrm
FindBin.pm46160644editdlrm
if.pm36310644editdlrm
integer.pm32540644editdlrm
Internals.pod25750644editdlrm
less.pm32040644editdlrm
locale.pm48850644editdlrm
Memoize.pm325860644editdlrm
meta_notation.pm20690644editdlrm
NEXT.pm189820644editdlrm
ok.pm9670644editdlrm
open.pm84980644editdlrm
overload.pm547230644editdlrm
overloading.pm18080644editdlrm
parent.pm27020644editdlrm
perl5db.pl3175700644editdlrm
perlfaq.pm770644editdlrm
PerlIO.pm142590644editdlrm
Safe.pm253520644editdlrm
SelectSaver.pm10760644editdlrm
SelfLoader.pm176860644editdlrm
sigtrap.pm87330644editdlrm
sort.pm29920644editdlrm
stable.pm46570644editdlrm
strict.pm47830644editdlrm
subs.pm9450644editdlrm
Symbol.pm49050644editdlrm
Test.pm300420644editdlrm
Test2.pm63930644editdlrm
Thread.pm82890644editdlrm
UNIVERSAL.pm68340644editdlrm
utf8.pm108880644editdlrm
vars.pm24580644editdlrm
version.pm19760644editdlrm
version.pod98320644editdlrm
vmsish.pm43130644editdlrm
warnings.pm570690644editdlrm
XSLoader.pm113990644editdlrm
_charnames.pm356790644editdlrm
Edit: /snap/gh/640/usr/share/perl/5.38.2/locale.pm (4885B)
package locale; use strict; use warnings; our $VERSION = '1.10'; use Config; $Carp::Internal{ (__PACKAGE__) } = 1; =head1 NAME locale - Perl pragma to use or avoid POSIX locales for built-in operations =head1 WARNING DO NOT USE this pragma in scripts that have multiple L active. The locale is not local to a single thread. Another thread may change the locale at any time, which could cause at a minimum that a given thread is operating in a locale it isn't expecting to be in. On some platforms, segfaults can also occur. The locale change need not be explicit; some operations cause perl to change the locale itself. You are vulnerable simply by having done a C<"use locale">. =head1 SYNOPSIS @x = sort @y; # Native-platform/Unicode code point sort order { use locale; @x = sort @y; # Locale-defined sort order } @x = sort @y; # Native-platform/Unicode code point sort order # again =head1 DESCRIPTION This pragma tells the compiler to enable (or disable) the use of POSIX locales for built-in operations (for example, LC_CTYPE for regular expressions, LC_COLLATE for string comparison, and LC_NUMERIC for number formatting). Each "use locale" or "no locale" affects statements to the end of the enclosing BLOCK. See L for more detailed information on how Perl supports locales. On systems that don't have locales, this pragma will cause your operations to behave as if in the "C" locale; attempts to change the locale will fail. =cut # 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]; my $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;