Current Path: > > usr > share > perl5
Operation : Linux premium107.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 198.54.126.246 | Your IP: 216.73.216.181 Domains : 1034 Domain(s) Permission : [ 0755 ]
| Name | Type | Size | Last Modified | Actions |
|---|---|---|---|---|
| Attribute | Directory | - | - | |
| B | Directory | - | - | |
| CPAN | Directory | - | - | |
| Class | Directory | - | - | |
| Compress | Directory | - | - | |
| Config | Directory | - | - | |
| DBM_Filter | Directory | - | - | |
| Devel | Directory | - | - | |
| ExtUtils | Directory | - | - | |
| File | Directory | - | - | |
| Getopt | Directory | - | - | |
| I18N | Directory | - | - | |
| IO | Directory | - | - | |
| IPC | Directory | - | - | |
| Locale | Directory | - | - | |
| Math | Directory | - | - | |
| Memoize | Directory | - | - | |
| Module | Directory | - | - | |
| Net | Directory | - | - | |
| Pod | Directory | - | - | |
| Search | Directory | - | - | |
| Term | Directory | - | - | |
| Text | Directory | - | - | |
| Thread | Directory | - | - | |
| Tie | Directory | - | - | |
| Time | Directory | - | - | |
| URI | Directory | - | - | |
| Unicode | Directory | - | - | |
| User | Directory | - | - | |
| encoding | Directory | - | - | |
| overload | Directory | - | - | |
| pod | Directory | - | - | |
| unicore | Directory | - | - | |
| vendor_perl | Directory | - | - | |
| warnings | Directory | - | - | |
| AnyDBM_File.pm | File | 2618 bytes | July 28 2025 08:07:09. | |
| AutoLoader.pm | File | 15797 bytes | July 28 2025 08:07:09. | |
| AutoSplit.pm | File | 19637 bytes | July 28 2025 08:07:09. | |
| Benchmark.pm | File | 31025 bytes | July 28 2025 08:07:09. | |
| CORE.pod | File | 3188 bytes | July 28 2025 08:07:09. | |
| DB.pm | File | 18922 bytes | July 28 2025 08:07:09. | |
| DBM_Filter.pm | File | 14385 bytes | July 28 2025 08:07:09. | |
| DirHandle.pm | File | 1556 bytes | July 28 2025 08:07:09. | |
| Dumpvalue.pm | File | 17556 bytes | July 28 2025 08:07:09. | |
| English.pm | File | 4761 bytes | July 28 2025 08:07:09. | |
| FileCache.pm | File | 5572 bytes | July 28 2025 08:07:09. | |
| FileHandle.pm | File | 6784 bytes | July 28 2025 08:07:09. | |
| FindBin.pm | File | 4561 bytes | July 28 2025 08:07:09. | |
| Internals.pod | File | 2576 bytes | July 28 2025 08:07:09. | |
| Memoize.pm | File | 36192 bytes | July 28 2025 08:08:32. | |
| NEXT.pm | File | 18846 bytes | July 28 2025 08:07:09. | |
| PerlIO.pm | File | 10459 bytes | July 28 2025 08:07:09. | |
| Safe.pm | File | 25082 bytes | July 28 2025 08:07:09. | |
| SelectSaver.pm | File | 1076 bytes | July 28 2025 08:07:09. | |
| SelfLoader.pm | File | 17692 bytes | July 28 2025 08:08:32. | |
| Symbol.pm | File | 4799 bytes | July 28 2025 08:07:09. | |
| Test.pm | File | 30057 bytes | July 28 2025 08:08:32. | |
| Thread.pm | File | 8287 bytes | July 28 2025 08:07:09. | |
| UNIVERSAL.pm | File | 6594 bytes | July 28 2025 08:07:09. | |
| URI.pm | File | 34790 bytes | January 09 2018 06:42:55. | |
| XSLoader.pm | File | 11267 bytes | July 28 2025 08:07:09. | |
| _charnames.pm | File | 33166 bytes | July 28 2025 08:07:09. | |
| autouse.pm | File | 4238 bytes | July 28 2025 08:07:09. | |
| base.pm | File | 10980 bytes | July 28 2025 08:07:09. | |
| blib.pm | File | 2086 bytes | July 28 2025 08:07:09. | |
| bytes.pm | File | 3754 bytes | July 28 2025 08:07:09. | |
| bytes_heavy.pl | File | 758 bytes | July 28 2025 08:07:09. | |
| charnames.pm | File | 20867 bytes | July 28 2025 08:07:09. | |
| deprecate.pm | File | 3079 bytes | July 28 2025 08:07:09. | |
| diagnostics.pm | File | 19038 bytes | July 28 2025 08:07:09. | |
| dumpvar.pl | File | 15555 bytes | July 28 2025 08:07:09. | |
| feature.pm | File | 17085 bytes | July 28 2025 08:07:09. | |
| fields.pm | File | 9489 bytes | July 28 2025 08:07:09. | |
| filetest.pm | File | 4003 bytes | July 28 2025 08:07:09. | |
| if.pm | File | 3340 bytes | July 28 2025 08:07:09. | |
| integer.pm | File | 3254 bytes | July 28 2025 08:07:09. | |
| less.pm | File | 3204 bytes | July 28 2025 08:07:09. | |
| locale.pm | File | 4855 bytes | July 28 2025 08:07:09. | |
| meta_notation.pm | File | 2117 bytes | July 28 2025 08:07:09. | |
| open.pm | File | 8021 bytes | July 28 2025 08:08:32. | |
| overload.pm | File | 53314 bytes | July 28 2025 08:07:09. | |
| overloading.pm | File | 1808 bytes | July 28 2025 08:07:09. | |
| perl5db.pl | File | 316420 bytes | July 28 2025 08:07:09. | |
| sigtrap.pm | File | 7606 bytes | July 28 2025 08:07:09. | |
| sort.pm | File | 6081 bytes | July 28 2025 08:07:09. | |
| strict.pm | File | 4738 bytes | July 28 2025 08:07:09. | |
| subs.pm | File | 848 bytes | July 28 2025 08:07:09. | |
| utf8.pm | File | 9116 bytes | July 28 2025 08:07:09. | |
| utf8_heavy.pl | File | 31615 bytes | July 28 2025 08:07:09. | |
| vars.pm | File | 2414 bytes | July 28 2025 08:07:09. | |
| vmsish.pm | File | 4313 bytes | July 28 2025 08:07:09. | |
| warnings.pm | File | 44756 bytes | July 28 2025 08:07:09. |
package UNIVERSAL;
our $VERSION = '1.13';
# UNIVERSAL should not contain any extra subs/methods beyond those
# that it exists to define. The existence of import() below is a historical
# accident that can't be fixed without breaking code.
# Make sure that even though the import method is called, it doesn't do
# anything unless called on UNIVERSAL.
sub import {
return unless $_[0] eq __PACKAGE__;
return unless @_ > 1;
require Carp;
Carp::croak("UNIVERSAL does not export anything");
}
1;
__END__
=head1 NAME
UNIVERSAL - base class for ALL classes (blessed references)
=head1 SYNOPSIS
$is_io = $fd->isa("IO::Handle");
$is_io = Class->isa("IO::Handle");
$does_log = $obj->DOES("Logger");
$does_log = Class->DOES("Logger");
$sub = $obj->can("print");
$sub = Class->can("print");
$sub = eval { $ref->can("fandango") };
$ver = $obj->VERSION;
# but never do this!
$is_io = UNIVERSAL::isa($fd, "IO::Handle");
$sub = UNIVERSAL::can($obj, "print");
=head1 DESCRIPTION
C<UNIVERSAL> is the base class from which all blessed references inherit.
See L<perlobj>.
C<UNIVERSAL> provides the following methods:
=over 4
=item C<< $obj->isa( TYPE ) >>
=item C<< CLASS->isa( TYPE ) >>
=item C<< eval { VAL->isa( TYPE ) } >>
Where
=over 4
=item C<TYPE>
is a package name
=item C<$obj>
is a blessed reference or a package name
=item C<CLASS>
is a package name
=item C<VAL>
is any of the above or an unblessed reference
=back
When used as an instance or class method (C<< $obj->isa( TYPE ) >>),
C<isa> returns I<true> if $obj is blessed into package C<TYPE> or
inherits from package C<TYPE>.
When used as a class method (C<< CLASS->isa( TYPE ) >>, sometimes
referred to as a static method), C<isa> returns I<true> if C<CLASS>
inherits from (or is itself) the name of the package C<TYPE> or
inherits from package C<TYPE>.
If you're not sure what you have (the C<VAL> case), wrap the method call in an
C<eval> block to catch the exception if C<VAL> is undefined.
If you want to be sure that you're calling C<isa> as a method, not a class,
check the invocand with C<blessed> from L<Scalar::Util> first:
use Scalar::Util 'blessed';
if ( blessed( $obj ) && $obj->isa("Some::Class") ) {
...
}
=item C<< $obj->DOES( ROLE ) >>
=item C<< CLASS->DOES( ROLE ) >>
C<DOES> checks if the object or class performs the role C<ROLE>. A role is a
named group of specific behavior (often methods of particular names and
signatures), similar to a class, but not necessarily a complete class by
itself. For example, logging or serialization may be roles.
C<DOES> and C<isa> are similar, in that if either is true, you know that the
object or class on which you call the method can perform specific behavior.
However, C<DOES> is different from C<isa> in that it does not care I<how> the
invocand performs the operations, merely that it does. (C<isa> of course
mandates an inheritance relationship. Other relationships include aggregation,
delegation, and mocking.)
By default, classes in Perl only perform the C<UNIVERSAL> role, as well as the
role of all classes in their inheritance. In other words, by default C<DOES>
responds identically to C<isa>.
There is a relationship between roles and classes, as each class implies the
existence of a role of the same name. There is also a relationship between
inheritance and roles, in that a subclass that inherits from an ancestor class
implicitly performs any roles its parent performs. Thus you can use C<DOES> in
place of C<isa> safely, as it will return true in all places where C<isa> will
return true (provided that any overridden C<DOES> I<and> C<isa> methods behave
appropriately).
=item C<< $obj->can( METHOD ) >>
=item C<< CLASS->can( METHOD ) >>
=item C<< eval { VAL->can( METHOD ) } >>
C<can> checks if the object or class has a method called C<METHOD>. If it does,
then it returns a reference to the sub. If it does not, then it returns
I<undef>. This includes methods inherited or imported by C<$obj>, C<CLASS>, or
C<VAL>.
C<can> cannot know whether an object will be able to provide a method through
AUTOLOAD (unless the object's class has overridden C<can> appropriately), so a
return value of I<undef> does not necessarily mean the object will not be able
to handle the method call. To get around this some module authors use a forward
declaration (see L<perlsub>) for methods they will handle via AUTOLOAD. For
such 'dummy' subs, C<can> will still return a code reference, which, when
called, will fall through to the AUTOLOAD. If no suitable AUTOLOAD is provided,
calling the coderef will cause an error.
You may call C<can> as a class (static) method or an object method.
Again, the same rule about having a valid invocand applies -- use an C<eval>
block or C<blessed> if you need to be extra paranoid.
=item C<VERSION ( [ REQUIRE ] )>
C<VERSION> will return the value of the variable C<$VERSION> in the
package the object is blessed into. If C<REQUIRE> is given then
it will do a comparison and die if the package version is not
greater than or equal to C<REQUIRE>, or if either C<$VERSION> or C<REQUIRE>
is not a "lax" version number (as defined by the L<version> module).
The return from C<VERSION> will actually be the stringified version object
using the package C<$VERSION> scalar, which is guaranteed to be equivalent
but may not be precisely the contents of the C<$VERSION> scalar. If you want
the actual contents of C<$VERSION>, use C<$CLASS::VERSION> instead.
C<VERSION> can be called as either a class (static) method or an object
method.
=back
=head1 WARNINGS
B<NOTE:> C<can> directly uses Perl's internal code for method lookup, and
C<isa> uses a very similar method and cache-ing strategy. This may cause
strange effects if the Perl code dynamically changes @ISA in any package.
You may add other methods to the UNIVERSAL class via Perl or XS code.
You do not need to C<use UNIVERSAL> to make these methods
available to your program (and you should not do so).
=head1 EXPORTS
None.
Previous versions of this documentation suggested using C<isa> as
a function to determine the type of a reference:
$yes = UNIVERSAL::isa($h, "HASH");
$yes = UNIVERSAL::isa("Foo", "Bar");
The problem is that this code would I<never> call an overridden C<isa> method in
any class. Instead, use C<reftype> from L<Scalar::Util> for the first case:
use Scalar::Util 'reftype';
$yes = reftype( $h ) eq "HASH";
and the method form of C<isa> for the second:
$yes = Foo->isa("Bar");
=cut
SILENT KILLER Tool