Variable-Strongly-Typed version 1.0.0 This modules allow you to strongly type your variables. Also known as the 'no fun' module - it can greatly enhance you code's quality and robustness. By enforcing types on some (or all) of your variables you will eliminate a large class of careless (& not so careless) errors. This could also aid an editor or code-browsing tools to verify code correctness without having to execute the script. use Variable::Strongly::Typed; my $int :TYPE('int'); # must have an 'int' value my $float :TYPE('float'); # must have a 'float' value my $string :TYPE('string'); # must not be a reference my $file :TYPE('IO::File'); # must be an IO::File my @array_of_ints :TYPE('int'); # Each slot must contain an int my %hash_of_floats :TYPE('float'); # Each value must be a float my @array_of_rgb :TYPE(\&red_green_blue); # my enumerated type # ... and later ... $int = 23; # All is well $int = 'howdy!'; # This line will croak with a good error message $float = 3.23; # All is well, nothing to see here $float = new XML::Parser; # croak! $array_of_ints[23] = 44; # Groovy $array_of_ints[12] = 'yah'; # croak! $hash_of_floats{pi} = 3.14159; # no problem $hash_of_floats{e} = new IO::File; # croak! # Return 1 if this val is RED, BLUE, or GREEN # 0 otherwise sub red_green_blue { local $_ = shift; /\A RED \z/xms || /\A BLUE \z/xms || /\A GREEN \z/xms; } $array_of_my_very_own_types[23] = 99; # croak! $array_of_my_very_own_types[2] = 'BLUE'; # OK! INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install Alternatively, to install with Module::Build, you can use the following commands: perl Build.PL ./Build ./Build test ./Build install DEPENDENCIES Class::Std::Utils Attribute::Handlers COPYRIGHT AND LICENCE Copyright (C) 2005, Mark Ethan Trostler This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.