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
|
package Catmandu::Fix::compact;
use Catmandu::Sane;
our $VERSION = '1.2024';
use Moo;
use Catmandu::Util::Path qw(as_path);
use Catmandu::Fix::Has;
with 'Catmandu::Fix::Builder';
has path => (fix_arg => 1);
sub _build_fixer {
my ($self) = @_;
as_path($self->path)
->updater(if_array_ref => sub {[grep defined, @{$_[0]}]});
}
=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;
|