/usr/share/perl5/Catmandu/Fix/compact.pm is in libcatmandu-perl 1.0700-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 | package Catmandu::Fix::compact;
use Catmandu::Sane;
use Moo;
use Catmandu::Fix::Has;
with 'Catmandu::Fix::Base';
has path => (fix_arg => 1);
sub emit {
my ($self, $fixer) = @_;
my $path = $fixer->split_path($self->path);
my $key = pop @$path;
$fixer->emit_walk_path(
$fixer->var,
$path,
sub {
my $var = shift;
$fixer->emit_get_key(
$var, $key,
sub {
my $var = shift;
"if (is_array_ref(${var})) {"
. "${var} = [grep defined, \@{${var}}];" . "}";
}
);
}
);
}
=head1 NAME
Catmandu::Fix::compact - remove undefined values from an array
=head1 SYNOPSIS
# list => [undef,"hello",undef,"world"]
compact(list)
# list => ["Hello","world"]
=head1 SEE ALSO
L<Catmandu::Fix>
=cut
1;
|