/usr/share/perl5/Test/Deep/MM.pm is in libtest-deep-perl 0.108-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 | use strict;
use warnings;
package Test::Deep::MM;
sub import
{
my $self = shift;
my ($pkg) = caller();
my $mpkg = $pkg."::Methods";
foreach my $attr (@_)
{
if ($attr =~ /^[a-z]/)
{
no strict 'refs';
*{$mpkg."::$attr"} = \&{$attr};
}
else
{
my $get_name = $mpkg."::get$attr";
my $set_name = $mpkg."::set$attr";
my $get_sub = sub {
return $_[0]->{$attr};
};
my $set_sub = sub {
return $_[0]->{$attr} = $_[1];
};
{
no strict 'refs';
*$get_name = $get_sub;
*$set_name = $set_sub;
push(@{$pkg."::ISA"}, $mpkg);
}
}
}
}
sub new
{
my $pkg = shift;
my $self = bless {}, $pkg;
$self->init(@_);
return $self;
}
sub init
{
my $self = shift;
while (@_)
{
my $name = shift || confess("No name");
my $method = "set$name";
$self->$method(shift);
}
}
1;
|