Boldra has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

I'm trying to get form to return some text completely unchanged. The tricky part seems to be that my input might be any length.

Here's what I've tried:
use strict; use warnings; use Test::More tests => 3; use Perl6::Form; my $var = " a b c "; my $got1 = form "#{'(8+)'}#", $var; is( $got1, "#$var#", "'(8+)'"); my $got2 = form "#{'+}#", $var; is( $got2, "#$var#", "'+"); my $got3 = form "#{''''}#", $var; is( $got3, "#$var#", "''''");
which returns:
1..3 not ok 1 - '(8+)' # Failed test ''(8+)'' # at /home/boldra/form_test.pl line 10. # got: '#a b c # # ' # expected: '# a b c #' not ok 2 - '+ # Failed test ''+' # at /home/boldra/form_test.pl line 13. # got: '#a b c# # ' # expected: '# a b c #' not ok 3 - '''' # Failed test '''''' # at /home/boldra/form_test.pl line 16. # got: '# a b c# # ' # expected: '# a b c #' # Looks like you failed 3 tests of 3.
I realise that this may seem pointless to pass something to form if I don't want it formatted, but in practice I'm trying to mix a unformatted field with a number of formatted fields, and I wanted to use form for all of my variables to make it easy to visualise and/or change the output.

Am I missing something in the doc? How do I get form to leave my input completely alone?


- Boldra

Replies are listed 'Best First'.
Re: Perl6::Form verbatim won't do what I want
by massa (Hermit) on Nov 12, 2008 at 13:30 UTC
    first, your value on the is tests are missing a "\n":
    is( $got3, "#$var#", "''''");
    Anyway, it seems that "verbatim fields" and "width specifications" (with or w/o "+") don't mix. so, the only test I could make work was:
    # exactly seven chars in the field: my $got3 = form "#{'''''}#", $var; is( $got3, "#$var#\n", "'''''");
    Update: apparently this also works:
    my $got1 = form "#{'(7)'}#", $var; is( $got1, "#$var#\n", "'(7)'");
    []s, HTH, Massa (κς,πμ,πλ)