Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.543.167 Times

Tie::HashHistory 0.03

  Date Added: November 18, 2010  |  Visits: 620

Tie::HashHistory

Report Broken Link
Printer Friendly Version


Product Homepage
Download (71 downloads)



Tie::HashHistory can track history of all changes to a tied hash. SYNOPSIS my $hh = tie %hash => Tie::HashHistory, PACKAGE, ARGS...; @values = $hh->history(KEY); Tie::HashHistory interposes itself between your program and another tied hash. Fetching and storing to the hash looks completely normal, but Tie::HashHistory is keeping a record of all the changes to the each key, and can Tie::HashHistory will give you a list of all the values the key has ever had, in chronological order. The arguments to the tie call should be Tie::HashHistory, and then the arguments that you would have given to tie to tie the hash without the history feature. For example, suppose you wanted to store your hash data in an NDBM file named database. Normally, you would say: tie %hash => NDBM_File, database, $flags, $mode; to get this history feature, just add Tie::HashHistory before NDBM_File: my $hh = tie %hash => Tie::HashHistory, NDBM_File, database, $flags, $mode; The data will still be stored in database, and it will still be an NDBM file. All the fetching and storing will look the same, but the change history of each key will be available. The tie call will return an object; to find out the history of a key, use the history method on this object. It takes one argument, which is a key string. It will return a list of all the values that have ever been associated with the key, in chronological order, starting with the most recent. For example: $hash{a} = first; $hash{b} = second; $hash{a} = third; # Overwrites old value # Prints "third second" as you would expect print "$hash{a} $hash{b}n"; @values = $hh->history(a); # @values now contains (third, first) @values = $hh->history(b); # @values now contains (second) At present, if called in scalar context, the history() method will return the number of items in the history. This behavior may change in future versions. The underlying hash can be any tied hash class at all. To use a regular in-memory hash, use Tie::StdHash (distributed with Perl) as the underlying implementation: use Tie::Hash; # *NOT Tie::StdHash* my $hh = tie %hash => Tie::HashHistory, Tie::StdHash; This is not as efficient as it could be because fetches and stores on %hash still go through two layers of tieing. I may fix this in a future release..

Requirements: No special requirements
Platforms: Linux
Keyword: All Changes Hash Hashhistory History History Of Key Libraries Ndbm Stdhash Tie Tied Tiehashhistory Track History Values
Users rating: 0/10

License: Freeware Size: 4.1 KB
USER REVIEWS
More Reviews or Write Review


TIE::HASHHISTORY RELATED
Network & Internet  -  browser-history 2.8
Browser-history is a small and efficient daemon that keeps your browser history, independent of the browser you use. Browser-history came from the will to overcome a Netscape bug: there was no global history, and if you close a window, its whole...
19.46 KB  
Libraries  -  Tie::ListKeyedHash 1.02
Tie::ListKeyedHash is a system allowing the use of anonymous arrays as keys to a hash. SYNOPSIS use Tie::ListKeyedHash; [$X =] tie %hash, Tie::ListKeyedHash; my $live_key = [key,items,live]; $hash{$live_key} = Hello!;...
16.38 KB  
Libraries  -  Bio::NEXUS::HistoryBlock 0.67
Bio::NEXUS::HistoryBlock is a Perl module that represents a HISTORY block of a NEXUS file. SYNOPSIS $block_object = new Bio::NEXUS::HistoryBlock(history, $block, $verbose); This is a class representing a history block in NEXUS file METHODS...
153.6 KB  
Utilities  -  SafariHistoryView 1.00
SafariHistoryView is a small and easy to use application that can read and parse the history file of Safari Web browser (history.plist), then it will display it in a simple table. Every browsing history line includes the following information:...
 
Security Tools  -  Chrome Cache Cleaner 1.0.0.0
Chrome Cache Cleaner is a small Free console application that enables you to quickly and easily empty your Google Chrome web browser cache folder and browsing history folder of all the rubbish that builds up and never gets emptied by Chrome and...
410 KB  
Modules  -  Add to Any Subscribe Button 0.9.5.1
The button comes with a customizable Smart Menu, which places the services visitors use at the top of the menu, based on each visitor's browsing history.InstallationUnpack and upload it to the /wp-content/plugins/ directory.Activate the plugin...
 
Productivity  -  Handy Calc! Free 1.1
You are person who needs to deal with calculations quickly and reliably? Then this is the app for you. - Large, animated buttons - Big digits - Display of the current operation - Undo the last operation - The history of all...
14 MB  
Entertainment  -  History Avengers 1.0
Ever wanted to travel back in time and change history? Well now you can. In this fun app you will travel back in time and try to find the items that don't belong in the early beginnings of America. Become the History Avenger of America and clean...
14.8 MB  
Business  -  Historica Calendar 1.0.6
Historica Calendar app is intended for picture researchers, education, publishers and history enthusiasts, as an inspirational tool for their projects. Historica Calendar app features thousands of key historical anniversaries, covering two...
7.1 MB  
Utilities  -  QR Code Reader and Scanner 3.0.4
Easiest and most beautiful QR Code Reader! Scans both QR codes and barcodes. Scans quickly and in real-time. FEATURES: - Support for scanning all kinds of QR Codes - Support for scanning Product Barcodes - Scan History...
12.3 MB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by freedesktop.org, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB  
Libraries  -  App::SimpleScan::Substitution::Line 2.02
App::SimpleScan::Substitution::Line is a line with optional fixed variable values. SYNOPSIS my $line = App::SimpleScan::Substitution::Line->new(" this "); # Use only this value when substituting " ". $line->fix(substituite =>...
54.27 KB