Why not adopt me?
NAME
Tie::Function::Examples - tie functions to the the read side of hashes
SYNOPSIS
use Tie::Function::Examples;
use Tie::Function::Examples qw(%thoucomma %nothoucomma %addcents %q_shell %round %sprintf);
tie %array, 'Tie::Function::Examples', \&function;
EXAMPLES
use Tie::Function::Examples;
tie %double, 'Tie::Function::Examples',
sub {
my ($key) = @_;
return $key * 2 if $key != 0;
return $key.$key;
};
print "2 * 2 is $double{2}\n";
use Tie::Function::Examples qw(%thoucomma %addcents);
tie %mymoney, 'Tie::Function::Examples',
sub {
my ($key, $underlying_array) = @_;
return "\$$thoucomma{$addcents{$underlying_array->{$key}}";
};
$mymoney{joe} = 7000;
print "$mymoney{joe}\n" # prints $7,000.00
DESCRIPTION
Tie::Function::Examples provides a simple method to tie a function to a hash.
The function is passed two arguments: the key used to access the array and a reference to a hash that is used for all non-read accesses to the array.
PREDEFINED BINDINGS
The following hashes are bound and can be imported from Tie::Function::Examples.
- %thoucomma
-
Adds commas to numbers. "7000.32" becomes "7,000.32"
- %nothoucomma
-
Removes commas from numbers. "7,000.32" becomes "7000.32"
- %addcents
-
Make sure that numbers end two places to the right of the decimal. "7000" becomes "7000.00" and "7000.149" becomes "7000.15".
- %q_perl
-
Quote strings for use in perl eval.
- %q_shell
-
Quotes file names quoted for use on a command line with the bash shell. This will sometimes put 'single quotes' around the file name and other times it will leave it bare.
- %round
-
This will round a number to the nearest integer. If you want a different rounding-point, use a pseudo-two dimensional lookup to provide a scale. Use "0.01" to round to the nearest penny and "1000" to round to the nearest thousand. For example: $round{38.7, 10} will round up to 40.
- %sprintf
-
Use a comma to do a pseudo-multi-dimensional lookup to specify both a format and arguments. Obviously, none of the arguments can have the ASCII character that is equal to the perl $; variable. Example: $sprintf{"%07d", 82} will interpolate to "0000082".
- %line_numbers
-
Add line numbers to a block of text.
LICENSE
This package may be used and redistributed under the terms of either the Artistic 2.0 or LGPL 2.1 license.