SQL::Translator::Utils - SQL::Translator Utility functions |
SQL::Translator::Utils - SQL::Translator Utility functions
use SQL::Translator::Utils qw(debug); debug("PKG: Bad things happened");
SQL::Translator::Utils
contains utility functions designed to be
used from the other modules within the SQL::Translator
modules.
Nothing is exported by default.
debug
takes 0 or more messages, which will be sent to STDERR using
warn
. Occurances of the strings PKG, SUB, and LINE
will be replaced by the calling package, subroutine, and line number,
respectively, as reported by caller(1)
.
For example, from within foo
in SQL/Translator.pm, at line 666:
debug("PKG: Error reading file at SUB/LINE");
Will warn
[SQL::Translator: Error reading file at foo/666]
The entire message is enclosed within [
and ]
for visual clarity
when STDERR is intermixed with STDOUT.
normalize_name
takes a string and ensures that it is suitable for
use as an identifier. This means: ensure that it starts with a letter
or underscore, and that the rest of the string consists of only
letters, numbers, and underscores. A string that begins with
something other than [a-zA-Z] will be prefixer with an underscore, and
all other characters in the string will be replaced with underscores.
Finally, a trailing underscore will be removed, because that's ugly.
normalize_name("Hello, world");
Produces:
Hello_world
A more useful example, from the SQL::Translator::Parser::Excel
test
suite:
normalize_name("silly field (with random characters)");
returns:
silly_field_with_random_characters
Create the header comment. Takes 1 mandatory argument (the producer classname), an optional comment character (defaults to $DEFAULT_COMMENT), and 0 or more additional comments, which will be appended to the header, prefixed with the comment character. If additional comments are provided, then a comment string must be provided ($DEFAULT_COMMENT is exported for this use). For example, this:
package My::Producer;
use SQL::Translator::Utils qw(header_comment $DEFAULT_COMMENT);
print header_comment(__PACKAGE__, $DEFAULT_COMMENT, "Hi mom!");
produces:
-- -- Created by My::Prodcuer -- Created on Fri Apr 25 06:56:02 2003 -- -- Hi mom! --
Note the gratuitous spacing.
Takes a string, list or arrayref (all of which could contain comma-separated values) and returns an array reference of the values. All of the following will return equivalent values:
parse_list_arg('id'); parse_list_arg('id', 'name'); parse_list_arg( 'id, name' ); parse_list_arg( [ 'id', 'name' ] ); parse_list_arg( qw[ id name ] );
This is the default comment string, '-- ' by default. Useful for
header_comment
.
Darren Chamberlain <darren@cpan.org>, Ken Y. Clark <kclark@cpan.org>.
SQL::Translator::Utils - SQL::Translator Utility functions |