This file is indexed.

/usr/share/perl5/perl5i/0/Meta.pm is in libperl5i-perl 2.13.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package perl5i::0::Meta;

use strict;
use warnings;

# Be very careful not to import anything.
require Carp;
require mro;

require perl5i::0::Meta::Instance;
require perl5i::0::Meta::Class;

sub UNIVERSAL::mo {
    return perl5i::0::Meta->new($_[0]);
}

sub new {
    my($class, $thing) = @_;
    return bless \$thing, ref $thing ? "perl5i::0::Meta::Instance" : "perl5i::0::Meta::Class";
}

sub ISA {
    my $class = $_[0]->class;

    no strict 'refs';
    return @{$class.'::ISA'};
}

sub linear_isa {
    my $self = shift;
    my $class = $self->class;

    # get_linear_isa() does not return UNIVERSAL
    my @extra;
    @extra = qw(UNIVERSAL) unless $class eq 'UNIVERSAL';

    return @{mro::get_linear_isa($class)}, @extra;
}


# A single place to put the "method not found" error.
my $method_not_found = sub {
    my $class  = shift;
    my $method = shift;

    Carp::croak sprintf q[Can't locate object method "%s" via package "%s"],
      $method, $class;
};


# caller() will return if its inside an eval, need to skip over those.
my $find_method = sub {
    my $method;
    my $height = 2;
    do {
        $method = (caller($height))[3];
        $height++;
    } until( !defined $method or $method ne '(eval)' );

    return $method;
};


sub super {
    my $self = shift;
    my $class = $self->class;

    my $fq_method = $find_method->();
    Carp::croak "super() called outside a method" unless $fq_method;

    my($parent, $method) = $fq_method =~ /^(.*)::(\w+)$/;

    Carp::croak sprintf qq["%s" is not a parent class of "%s"], $parent, $class
      unless $class->isa($parent);

    my @isa = $self->linear_isa();

    while(@isa) {
        my $class = shift @isa;
        last if $class eq $parent;
    }

    for (@isa) {
        my $code = $_->can($method);
        @_ = ($$self, @_);
        goto &$code if $code;
    }

    $class->$method_not_found($method);
}

1;