| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
HTML::FormFu::Filter::CompoundSprintf - CompoundSprintf filter
---
element:
- type: Multi
name: date
elements:
- name: day
- name: month
- name: year
filter:
- type: CompoundSprintf
sprintf: '%02d-%02d-%04d'
# get the compound-value
my $date = $form->param_value('date');
For use with a HTML::FormFu::Element::Multi group of fields.
Uses a sprintf pattern to join the input from several fields into a single value.
Arguments: $string
sprintf pattern used to join the individually submitted parts.
The pattern is passed to the perl-core sprintf function.
Inherited. See field_order in HTML::FormFu::Filter::_Compound for details.
---
element:
- type: Multi
name: date
elements:
- name: month
- name: day
- name year
filter:
- type: CompoundSprintf
field_order:
- day
- month
- year
Carl Franks, cfranks@cpan.org
This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
package HTML::FormFu::Filter::CompoundSprintf; use Moose; extends 'HTML::FormFu::Filter'; with 'HTML::FormFu::Role::Filter::Compound'; use HTML::FormFu::Constants qw( $EMPTY_STR ); use Carp qw( croak ); has sprintf => ( is => 'rw', traits => ['Chained'] ); sub filter { my ( $self, $value ) = @_; return if !defined $value || $value eq $EMPTY_STR; my $sprintf = $self->sprintf; croak 'sprintf pattern required' if !defined $sprintf; my @values = $self->_get_values($value); $value = CORE::sprintf( $sprintf, @values ); return $value; } __PACKAGE__->meta->make_immutable; 1; __END__