Jonathan Cast
and 1 contributors

NAME

exported::constants - Declare constants and export them automatically

SYNOPSIS

    package MyProg::Constants;

    use exported::constants
        USER_TYPE_USER => 'U',
        USER_TYPE_APPLICATION => 'A',
        USER_TYPE_ROBOT => 'B',
    ;

    package MyProg::App;

    use MyProg::Constants;

    my @real_users = $users->search({ user_type => USER_TYPE_USER, });

DESCRIPTION

This is a boilerplate-removal module for creating modules of just constants in your program. This is useful if you have a lot of magic numbers you want to eliminate, especially things that show up in database schemas or APIs that you want to re-use across multiple modules.

It's pretty simple to use; just say

    use exported::constants
        CONSTANT1 => $value1,
        CONSTANT2 => $value2,
    ;

and your package is automatically an exporter, and automatically exports (by default) all the constants listed.

RESTRICTIONS

  • List constants don't work, because exported::constants is intended to always create multiple constants in a single invocation.

  • This module always works using @EXPORT in Exporter; this is unfortunate for developers who want to explicitly import all their constants.

SEE ALSO

AUTHOR

Jonathan Cast <jonathanccast@fastmail.fm>

COPYRIGHT AND LICENSE

Copyright 2017 Jonathan Cast

Licensed under the Apache License, Version 2.0 (the "License").