This file is indexed.

/usr/share/perl5/Catmandu/Fix/vacuum.pm is in libcatmandu-perl 0.9505-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
package Catmandu::Fix::vacuum;

use Catmandu::Sane;

our $VERSION = '0.9505';

use Moo;
use Catmandu::Expander ();
use Catmandu::Fix::Bind::visitor;
use namespace::clean;
use Catmandu::Fix::Has;

sub fix {
    my ($self,$data) = @_;

    my $ref = eval {
      # This can die with 'Unknown reference type' when the data is blessed
      Catmandu::Expander->collapse_hash($data);
   };

   # Try to unbless data
   if ($@) {
      my $bind = Catmandu::Fix::Bind::visitor->new;
      my $data = $bind->unit($data);

      $data = $bind->bind($data,sub {
         my $item = $_[0];

         $item->{scalar} = sprintf "%s" , $item->{scalar} if (ref $item->{scalar});

         $item;
      });

      $ref = Catmandu::Expander->collapse_hash($data);
   }

    for my $key (keys %$ref) {
        my $value = $ref->{$key};
        delete $ref->{$key} unless defined($value) && length $value && $value =~ /\S/; 
    }
    
    Catmandu::Expander->expand_hash($ref);
}

1;

__END__

=pod

=head1 NAME

Catmandu::Fix::vacuum - delete all empty fields from your data

=head1 SYNOPSIS

   # Delete all the empty fields
   #
   # input:
   #
   # foo: ''
   # bar: []
   # relations: {}
   # test: 123
   #
   vacuum()
   
   # output:
   #
   # test: 123
   #

=head1 SEE ALSO

L<Catmandu::Fix>

=cut