<%perl>
  my %values;

  foreach my $type (@$types) {
    my $flag = 0;

    foreach my $color (@$colors) {
      my $value = $args->{$type . $color};
      $flag++ unless ($value =~ /^\d+$/ and $value >= 0 and $value < 256);
    }

    if ($flag) {
      # Uytkownik poda niewaciw warto, wic uyjemy wartoci domylnej.
      $values{$type} = $hex->{$type};
    }
    else {
      # Wartoci podane przez uytkownika s prawidowe.
      $values{$type} =
        sprintf("%02X%02X%02X", map {$args->{$type . $_}} @$colors);
    }
  }
</%perl>

<& form, types => $types, colors => $colors, hex => \%values &>

<%args>
  $types
  $colors
  $hex
  $args
</%args>
