/usr/lib/perl5/QtCore4/isa.pm is in libqtcore4-perl 4:4.13.0-0ubuntu1.
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 | package QtCore4::isa;
use strict;
use warnings;
our $VERSION = 0.60;
# meta-hackery tools
my $A = sub {my ($n) = @_; no strict 'refs'; \@{$n}};
my $H = sub {my ($n) = @_; no strict 'refs'; no warnings 'once'; \%{$n}};
my $ISUB = sub {my ($n, $s) = @_; no strict 'refs'; *{$n} = $s};
sub import {
# Class will be QtCore4::isa. Caller is the name of the package doing the use.
my $class = shift;
my $caller = (caller)[0];
# Trick 'use' into believing the file for this class has been read, and
# associate it with this file
my $pm = $caller . ".pm";
$pm =~ s!::!/!g;
unless(exists $::INC{$pm}) {
$::INC{$pm} = $::INC{"QtCore4/isa.pm"};
}
# Define the Qt::ISA array
# Load the file if necessary
for my $super (@_) {
push @{$A->($caller . '::ISA')}, $super;
push @{$H->($caller . '::META')->{'superClass'}}, $super;
# Convert ::'s to a filepath /
(my $super_pm = $super.'.pm') =~ s!::!/!g;
unless( defined $Qt::_internal::package2classId{$super} ){
require $super_pm;
}
}
# Make it so that 'use <packagename>' makes a subroutine called
# <packagename> that calls ->new
$ISUB->($caller . '::import', sub {
# Name is the full package name being loaded, incaller is the package
# doing the loading
my $name = shift; # classname = function-name
my $incaller = (caller)[0];
$ISUB->( $name, sub { $name->new(@_); } )
unless defined &{"$name"};
$ISUB->("$incaller\::$name", sub { $name->new(@_) })
unless defined &{"$incaller\::$name"};
$name->export($incaller, @_)
if(grep { $_ eq 'Exporter' } @{$A->("$name\::ISA")});
});
foreach my $sp (' ', '') {
my $where = $sp . $caller;
Qt::_internal::installautoload($where);
package Qt::AutoLoad;
my $autosub = \&{$where . '::_UTOLOAD'};
$ISUB->($where.'::AUTOLOAD', sub { &$autosub });
}
Qt::_internal::installSub( " ${caller}::isa", \&Qt::_internal::isa );
Qt::_internal::installthis($caller);
}
1; # Is the loneliest number that you'll ever do
|