Why not adopt me?
NAME
Tie::Function::Examples -
tie
functions to the the
read
side of hashes
SYNOPSIS
tie
%array
,
'Tie::Function::Examples'
, \
&function
;
EXAMPLES
tie
%double
,
'Tie::Function::Examples'
,
sub
{
my
(
$key
) =
@_
;
return
$key
* 2
if
$key
!= 0;
return
$key
.
$key
;
};
"2 * 2 is $double{2}\n"
;
tie
%mymoney
,
'Tie::Function::Examples'
,
sub
{
my
(
$key
,
$underlying_array
) =
@_
;
return
"\$$thoucomma{$addcents{$underlying_array->{$key}}"
;
};
$mymoney
{joe} = 7000;
"$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
Copyright (C) 2008-2007,2008-2010 David Sharnoff. Copyright (C) 2007-2008 SearchMe Inc. Copyright (C) 2011 Google Inc. This package may be used and redistributed under the terms of either the Artistic 2.0 or LGPL 2.1 license.