Sah::Examples - Examples
version 0.9.4
# integer, optional 'int' # required integer 'int*' # same thing ['int', {req=>1}] # integer between 1 and 10 ['int*', {min=>1, max=>10}] # same thing, the curly brace is optional (unless for advanced stuff) ['int*', min=>1, max=>10] # array of integers between 1 and 10 ['array*', {of=>['int*', between=>[1, 10]]}] # a byte (let's assign it to a new type 'byte') ['int', {between=>[0,255]}] # a byte that's divisible by 3 ['byte', {div_by=>3}] # a byte that's divisible by 3 *and* 5 ['byte', {'div_by&'=>[3, 5]}] # a byte that's divisible by 3 *or* 5 ['byte', {'div_by|'=>[3, 5]}] # a byte that's *in*divisible by 3 ['byte', {'!div_by'=>3}]
# an address hash (let's assign it to a new type called 'address') ['hash' => { # recognized keys keys => { line1 => ['str*', max_len => 80], line2 => ['str*', max_len => 80], city => ['str*', max_len => 60], province => ['str*', max_len => 60], postcode => ['str*', len_between=>[4, 15], match=>'^[\w-]{4,15}$'], country => ['str*', len => 2, match => '^[A-Z][A-Z]$'], }, # keys that must exist in data req_keys => [qw/line1 city province postcode country/], }] # a US address, let's base it on 'address' but change 'postcode' to 'zipcode'. # also, require country to be set to 'US' ['address' => { '[merge-]keys' => {postcode=>undef}, '[merge]keys' => { zipcode => ['str*', len=>5, '^\d{5}$'], country => ['str*', is=>'US'], }, '[merge-]req_keys' => [qw/postcode/], '[merge+]req_keys' => [qw/zipcode/], }]
Steven Haryanto <stevenharyanto@gmail.com>
This software is copyright (c) 2012 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Sah, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Sah
CPAN shell
perl -MCPAN -e shell install Sah
For more information on module installation, please visit the detailed CPAN module installation guide.