[![Build Status](https://travis-ci.org/kfly8/Variable-Declaration.svg?branch=master)](https://travis-ci.org/kfly8/Variable-Declaration)
# NAME

Variable::Declaration - declare with type constraint

# SYNOPSIS

   use Variable::Declaration;
   use Types::Standard '-all';

   # variable declaration
   let $foo;      # is equivalent to `my $foo`
   static $bar;   # is equivalent to `state $bar`
   const $baz;    # is equivalent to `my $baz;dlock($baz)`

   # with type constraint

   # init case
   let Str $foo = {}; # => Reference {} did not pass type constraint "Str"

   # store case
   let Str $foo = 'foo';
   $foo = {}; # => Reference {} did not pass type constraint "Str"

# DESCRIPTION

Variable::Declaration provides new variable declarations, i.e. \`let\`, \`static\`, and \`const\`.

\`let\` is equivalent to \`my\` with type constraint.
\`static\` is equivalent to \`state\` with type constraint.
\`const\` is equivalent to \`let\` with data lock.

# LICENSE

Copyright (C) Kenta, Kobayashi.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

# AUTHOR

Kenta, Kobayashi <[email protected]>