[ Avaa Bypassed ]




Upload:

Command:

www-data@3.16.135.185: ~ $
package experimental;
$experimental::VERSION = '0.020';
use strict;
use warnings;
use version ();

BEGIN { eval { require feature } };
use Carp qw/croak carp/;

my %warnings = map { $_ => 1 } grep { /^experimental::/ } keys %warnings::Offsets;
my %features = map { $_ => 1 } $] > 5.015006 ? keys %feature::feature : do {
	my @features;
	if ($] >= 5.010) {
		push @features, qw/switch say state/;
		push @features, 'unicode_strings' if $] > 5.011002;
	}
	@features;
};

my %min_version = (
	array_base      => '5',
	autoderef       => '5.14.0',
	bitwise         => '5.22.0',
	const_attr      => '5.22.0',
	current_sub     => '5.16.0',
	declared_refs   => '5.26.0',
	evalbytes       => '5.16.0',
	fc              => '5.16.0',
	lexical_topic   => '5.10.0',
	lexical_subs    => '5.18.0',
	postderef       => '5.20.0',
	postderef_qq    => '5.20.0',
	refaliasing     => '5.22.0',
	regex_sets      => '5.18.0',
	say             => '5.10.0',
	smartmatch      => '5.10.0',
	signatures      => '5.20.0',
	state           => '5.10.0',
	switch          => '5.10.0',
	unicode_eval    => '5.16.0',
	unicode_strings => '5.12.0',
);
my %max_version = (
	autoderef       => '5.23.1',
	lexical_topic   => '5.23.4',
);

$_ = version->new($_) for values %min_version;
$_ = version->new($_) for values %max_version;

my %additional = (
	postderef     => ['postderef_qq'],
	switch        => ['smartmatch'],
	declared_refs => ['refaliasing'],
);

sub _enable {
	my $pragma = shift;
	if ($warnings{"experimental::$pragma"}) {
		warnings->unimport("experimental::$pragma");
		feature->import($pragma) if exists $features{$pragma};
		_enable(@{ $additional{$pragma} }) if $additional{$pragma};
	}
	elsif ($features{$pragma}) {
		feature->import($pragma);
		_enable(@{ $additional{$pragma} }) if $additional{$pragma};
	}
	elsif (not exists $min_version{$pragma}) {
		croak "Can't enable unknown feature $pragma";
	}
	elsif ($] < $min_version{$pragma}) {
		my $stable = $min_version{$pragma};
		if ($stable->{version}[1] % 2) {
			$stable = version->new(
				"5.".($stable->{version}[1]+1).'.0'
			);
		}
		croak "Need perl $stable or later for feature $pragma";
	}
	elsif ($] >= ($max_version{$pragma} || 7)) {
		croak "Experimental feature $pragma has been removed from perl in version $max_version{$pragma}";
	}
}

sub import {
	my ($self, @pragmas) = @_;

	for my $pragma (@pragmas) {
		_enable($pragma);
	}
	return;
}

sub _disable {
	my $pragma = shift;
	if ($warnings{"experimental::$pragma"}) {
		warnings->import("experimental::$pragma");
		feature->unimport($pragma) if exists $features{$pragma};
		_disable(@{ $additional{$pragma} }) if $additional{$pragma};
	}
	elsif ($features{$pragma}) {
		feature->unimport($pragma);
		_disable(@{ $additional{$pragma} }) if $additional{$pragma};
	}
	elsif (not exists $min_version{$pragma}) {
		carp "Can't disable unknown feature $pragma, ignoring";
	}
}

sub unimport {
	my ($self, @pragmas) = @_;

	for my $pragma (@pragmas) {
		_disable($pragma);
	}
	return;
}

1;

#ABSTRACT: Experimental features made easy

__END__

=pod

=encoding UTF-8

=head1 NAME

experimental - Experimental features made easy

=head1 VERSION

version 0.020

=head1 SYNOPSIS

 use experimental 'lexical_subs', 'smartmatch';
 my sub foo { $_[0] ~~ 1 }

=head1 DESCRIPTION

This pragma provides an easy and convenient way to enable or disable
experimental features.

Every version of perl has some number of features present but considered
"experimental."  For much of the life of Perl 5, this was only a designation
found in the documentation.  Starting in Perl v5.10.0, and more aggressively in
v5.18.0, experimental features were placed behind pragmata used to enable the
feature and disable associated warnings.

The C<experimental> pragma exists to combine the required incantations into a
single interface stable across releases of perl.  For every experimental
feature, this should enable the feature and silence warnings for the enclosing
lexical scope:

  use experimental 'feature-name';

To disable the feature and, if applicable, re-enable any warnings, use:

  no experimental 'feature-name';

The supported features, documented further below, are:

=over 4

=item * C<array_base> - allow the use of C<$[> to change the starting index of C<@array>.

This is supported on all versions of perl.

=item * C<autoderef> - allow push, each, keys, and other built-ins on references.

This was added in perl 5.14.0 and removed in perl 5.23.1.

=item * C<bitwise> - allow the new stringwise bit operators

This was added in perl 5.22.0.

=item * C<const_attr> - allow the :const attribute on subs

This was added in perl 5.22.0.

=item * C<lexical_topic> - allow the use of lexical C<$_> via C<my $_>.

This was added in perl 5.10.0 and removed in perl 5.23.4.

=item * C<lexical_subs> - allow the use of lexical subroutines.

This was added in 5.18.0.

=item * C<postderef> - allow the use of postfix dereferencing expressions,
including in interpolating strings

This was added in perl 5.20.0.

=item * C<re_strict> - enables strict mode in regular expressions

This was added in perl 5.22.0.

=item * C<refaliasing> - allow aliasing via C<\$x = \$y>

This was added in perl 5.22.0.

=item * C<regex_sets> - allow extended bracketed character classes in regexps

This was added in perl 5.18.0.

=item * C<signatures> - allow subroutine signatures (for named arguments)

This was added in perl 5.20.0.

=item * C<smartmatch> - allow the use of C<~~>

This was added in perl 5.10.0, but it should be noted there are significant
incompatibilities between 5.10.0 and 5.10.1.

=item * C<switch> - allow the use of C<~~>, given, and when

This was added in perl 5.10.0.

=item * C<win32_perlio> - allows the use of the :win32 IO layer.

This was added on perl 5.22.0.

=back

=head2 Ordering matters

Using this pragma to 'enable an experimental feature' is another way of saying
that this pragma will disable the warnings which would result from using that
feature.  Therefore, the order in which pragmas are applied is important.  In
particular, you probably want to enable experimental features I<after> you
enable warnings:

  use warnings;
  use experimental 'smartmatch';

You also need to take care with modules that enable warnings for you.  A common
example being Moose.  In this example, warnings for the 'smartmatch' feature are
first turned on by the warnings pragma, off by the experimental pragma and back
on again by the Moose module (fix is to switch the last two lines):

  use warnings;
  use experimental 'smartmatch';
  use Moose;

=head2 Disclaimer

Because of the nature of the features it enables, forward compatibility can not
be guaranteed in any way.

=head1 SEE ALSO

L<perlexperimental|perlexperimental> contains more information about experimental features.

=head1 AUTHOR

Leon Timmermans <leont@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Leon Timmermans.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut

Filemanager

Name Type Size Permission Actions
App Folder 0755
Archive Folder 0755
Attribute Folder 0755
B Folder 0755
CPAN Folder 0755
Carp Folder 0755
Class Folder 0755
Compress Folder 0755
Config Folder 0755
DBM_Filter Folder 0755
Devel Folder 0755
Digest Folder 0755
Encode Folder 0755
Exporter Folder 0755
ExtUtils Folder 0755
File Folder 0755
Filter Folder 0755
Getopt Folder 0755
HTTP Folder 0755
I18N Folder 0755
IO Folder 0755
IPC Folder 0755
JSON Folder 0755
Locale Folder 0755
Math Folder 0755
Memoize Folder 0755
Module Folder 0755
Net Folder 0755
Params Folder 0755
Parse Folder 0755
Perl Folder 0755
PerlIO Folder 0755
Pod Folder 0755
Search Folder 0755
TAP Folder 0755
Term Folder 0755
Test Folder 0755
Test2 Folder 0755
Text Folder 0755
Thread Folder 0755
Tie Folder 0755
Time Folder 0755
Unicode Folder 0755
User Folder 0755
autodie Folder 0755
encoding Folder 0755
overload Folder 0755
pod Folder 0755
unicore Folder 0755
version Folder 0755
warnings Folder 0755
AnyDBM_File.pm File 2.56 KB 0644
AutoLoader.pm File 15.43 KB 0644
AutoSplit.pm File 19.18 KB 0644
Benchmark.pm File 30.3 KB 0644
CORE.pod File 3.11 KB 0644
CPAN.pm File 138.75 KB 0644
Carp.pm File 35.12 KB 0644
DB.pm File 18.48 KB 0644
DBM_Filter.pm File 14.05 KB 0644
Digest.pm File 10.45 KB 0644
DirHandle.pm File 2.04 KB 0644
Dumpvalue.pm File 17.14 KB 0644
English.pm File 4.65 KB 0644
Env.pm File 5.39 KB 0644
Exporter.pm File 18.36 KB 0644
Fatal.pm File 56.91 KB 0644
FileCache.pm File 5.42 KB 0644
FileHandle.pm File 6.63 KB 0644
FindBin.pm File 4.45 KB 0644
Internals.pod File 2.51 KB 0644
Memoize.pm File 35.34 KB 0644
NEXT.pm File 18.54 KB 0644
PerlIO.pm File 10.21 KB 0644
Safe.pm File 24.49 KB 0644
SelectSaver.pm File 1.05 KB 0644
SelfLoader.pm File 17.27 KB 0644
Symbol.pm File 4.69 KB 0644
Test.pm File 29.34 KB 0644
Test2.pm File 6.24 KB 0644
Thread.pm File 8.09 KB 0644
UNIVERSAL.pm File 6.44 KB 0644
XSLoader.pm File 10.99 KB 0644
_charnames.pm File 32.39 KB 0644
autodie.pm File 12.58 KB 0644
autouse.pm File 4.14 KB 0644
base.pm File 10.7 KB 0644
bigint.pm File 22.85 KB 0644
bignum.pm File 20.64 KB 0644
bigrat.pm File 15.78 KB 0644
blib.pm File 2.01 KB 0644
bytes.pm File 3.65 KB 0644
bytes_heavy.pl File 758 B 0644
charnames.pm File 20.38 KB 0644
constant.pm File 14.38 KB 0644
deprecate.pm File 5.07 KB 0644
diagnostics.pm File 18.59 KB 0644
dumpvar.pl File 15.19 KB 0644
experimental.pm File 6.9 KB 0644
feature.pm File 17.28 KB 0644
fields.pm File 9.25 KB 0644
filetest.pm File 3.91 KB 0644
if.pm File 3.53 KB 0644
integer.pm File 3.18 KB 0644
less.pm File 3.13 KB 0644
locale.pm File 4.74 KB 0644
meta_notation.pm File 2.07 KB 0644
ok.pm File 967 B 0644
open.pm File 7.83 KB 0644
overload.pm File 52.04 KB 0644
overloading.pm File 1.77 KB 0644
parent.pm File 2.51 KB 0644
perl5db.pl File 309.69 KB 0644
perlfaq.pm File 77 B 0644
sigtrap.pm File 8.53 KB 0644
sort.pm File 3.82 KB 0644
strict.pm File 4.63 KB 0644
subs.pm File 901 B 0644
utf8.pm File 10.18 KB 0644
utf8_heavy.pl File 26.66 KB 0644
vars.pm File 2.4 KB 0644
version.pm File 1.93 KB 0644
version.pod File 9.6 KB 0644
vmsish.pm File 4.21 KB 0644
warnings.pm File 48.82 KB 0644