App-CSVUtils

 view release on metacpan or  search on metacpan

lib/App/CSVUtils.pm  view on Meta::CPAN

                } else {
                    $meta->{args}{input_filename} = {%{$argspecopt_input_filename{input_filename}}};
                    _add_arg_pos($meta->{args}, 'input_filename');
                }

                push @$tags, 'reads-csv';
            } # if reads_csv

            if ($writes_csv) {
                $meta->{args}{$_} = {%{$argspecs_csv_output{$_}}} for keys %argspecs_csv_output;

                if ($reads_csv) {
                    $meta->{args}{$_} = {%{$argspecsopt_inplace{$_}}} for keys %argspecsopt_inplace;
                    $meta->{args_rels}{'dep_all&'} //= [];
                    push @{ $meta->{args_rels}{'dep_all&'} }, ['inplace_backup_ext', ['inplace']];
                    $meta->{args_rels}{'choose_one&'} //= [];
                    push @{ $meta->{args_rels}{'choose_one&'} }, ['inplace', 'output_filename'];
                    push @{ $meta->{args_rels}{'choose_one&'} }, ['inplace', 'output_filenames'];
                }

                if ($writes_multiple_csv) {
                    $meta->{args}{output_filenames} = {%{$argspecopt_output_filenames{output_filenames}}};
                    _add_arg_pos($meta->{args}, 'output_filenames', 'slurpy');
                    if ($reads_csv) {
                        $meta->{args_rels}{'choose_one&'} //= [];
                        push @{ $meta->{args_rels}{'choose_one&'} }, [qw/output_filenames inplace/];
                    }
                    push @$tags, 'writes-multiple-csv';
                } else {
                    $meta->{args}{output_filename} = {%{$argspecopt_output_filename{output_filename}}};
                    _add_arg_pos($meta->{args}, 'output_filename');
                    if ($reads_csv) {
                        $meta->{args_rels}{'choose_one&'} //= [];
                        push @{ $meta->{args_rels}{'choose_one&'} }, [qw/output_filename inplace/];
                    }
                }

                $meta->{args}{overwrite} = {%{$argspecopt_overwrite{overwrite}}};
                $meta->{args_rels}{'dep_any&'} //= [];
                push @{ $meta->{args_rels}{'dep_any&'} }, ['overwrite', ['output_filename', 'output_filenames']];

                push @$tags, 'writes-csv';
            } # if writes csv

        } # CREATE_ARGS_PROP

      CREATE_ARGS_RELS_PROP: {
            $meta->{args_rels} = {};
            if ($add_args_rels) {
                $meta->{args_rels}{$_} = $add_args_rels->{$_} for keys %$add_args_rels;
            }
        } # CREATE_ARGS_RELS_PROP

        if ($add_meta_props) {
            $meta->{$_} = $add_meta_props->{$_} for keys %$add_meta_props;
        }

    } # CREATE_META

    {
        my $package = caller();
        no strict 'refs'; ## no critic: TestingAndDebugging::ProhibitNoStrict
        *{"$package\::$name"} = $code;
        #use DD; dd $meta;
        ${"$package\::SPEC"}{$name} = $meta;
    }

    1;
}

1;
# ABSTRACT: CLI utilities related to CSV

__END__

=pod

=encoding UTF-8

=head1 NAME

App::CSVUtils - CLI utilities related to CSV

=head1 VERSION

This document describes version 1.036 of App::CSVUtils (from Perl distribution App-CSVUtils), released on 2025-02-04.

=head1 DESCRIPTION

This distribution contains the following CLI utilities:

=over

=item 1. L<csv-add-fields>

=item 2. L<csv-avg>

=item 3. L<csv-check-cell-values>

=item 4. L<csv-check-field-names>

=item 5. L<csv-check-field-values>

=item 6. L<csv-check-rows>

=item 7. L<csv-cmp>

=item 8. L<csv-concat>

=item 9. L<csv-convert-to-hash>

=item 10. L<csv-csv>

=item 11. L<csv-delete-fields>

=item 12. L<csv-dump>

=item 13. L<csv-each-row>

=item 14. L<csv-fill-cells>



( run in 0.536 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )