NAME
Audit::DBI::Utils - Utilities for the Audit::DBI distribution.
VERSION
Version 1.9.0
SYNOPSIS
use Audit::DBI::Utils;
my $ip_address = Audit::DBI::Utils::integer_to_ipv4( $integer );
my $integer = Audit::DBI::Utils::ipv4_to_integer( $ip_address );
my $differences = Audit::DBI::Utils::diff_structures(
$data_structure_1,
$data_structure_2,
comparison_function => sub { my ( $a, $b ) = @_; $a eq $b; }, #optional
);
my $diff_string_bytes = Audit::DBI::Utils::get_diff_string_bytes(
$differences
);
FUNCTIONS
stringify_data_structure()
my $string = Audit::DBI::Utils::stringify_data_structure(
data_structure => $data_structure,
object_stringification_map =>
{
'Math::Currency' => 'as_float',
},
);
integer_to_ipv4()
Convert a 32-bits integer representing an IP address into its IPv4 form.
my $ip_address = Audit::DBI::Utils::integer_to_ipv4( $integer );
ipv4_to_integer()
Convert an IPv4 address to a 32-bit integer.
my $integer = Audit::DBI::Utils::ipv4_to_integer( $ip_address );
diff_structures()
Return the differences between the two data structures passed as parameter.
By default, if leaf nodes are compared with '==' if they are both numeric, and with 'eq' otherwise.
An optional comparison_function parameter can be used to specify a different comparison function.
my $differences = Audit::DBI::Utils::diff_structures(
$data_structure_1,
$data_structure_2,
);
# Alternative built-in comparison function.
# Leaf nodes are compared using 'eq'.
my $diff = Audit::DBI::Utils::diff_structures(
$data_structure_1,
$data_structure_2,
comparison_function => 'eq',
);
# Alternative custom comparison function.
my $diff = Audit::DBI::Utils::diff_structures(
$data_structure_1,
$data_structure_2,
comparison_function => sub
{
my ( $variable_1, $variable2 ) = @_;
# [...]
return $is_equal;
}
);
get_diff_string_bytes()
Return the size in bytes of the string differences. The argument must be a diff structure returned by Audit::DBI::Utils::diff_structures()
.
This function has two modes:
Relative comparison (default):
In this case, a string change from 'TestABC' to 'TestCDE' is a 0 bytes change (since there is the same number of characters).
my $diff_string_bytes = Audit::DBI::Utils::get_diff_string_bytes( $diff_structure );
Absolute comparison:
In this case, a string change from 'TestABC' to 'TestCDE' is a 6 bytes change (3 characters removed, and 3 added).
my $diff_string_bytes = Audit::DBI::Utils::get_diff_string_bytes( $diff_structure, absolute => 1, );
Note that absolute comparison requires String::Diff to be installed.
get_string_bytes()
Return the size in bytes of all the strings contained in the data structure passed as argument.
my $string_bytes = Audit::DBI::Utils::get_string_bytes( 'Test' );
my $string_bytes = Audit::DBI::Utils::get_string_bytes(
[ 'Test1', 'Test2' ]
);
my $string_bytes = Audit::DBI::Utils::get_string_bytes(
{ 'Test' => 1 }
);
Note: this function is recursive, and will explore both arrayrefs and hashrefs.
BUGS
Please report any bugs or feature requests through the web interface at https://github.com/guillaumeaubert/Audit-DBI/issues/new. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Audit::DBI::Utils
You can also look for information at:
GitHub's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
MetaCPAN
AUTHOR
Guillaume Aubert, <aubertg at cpan.org>
.
COPYRIGHT & LICENSE
Copyright 2010-2017 Guillaume Aubert.
This code is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details.