data structures
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 5556
Erwin Data Structures 2.1.58633
Erwin Data Structures is a library that is meant to be the ultimate data structure library for mixed usage of C and C++. more>>
Erwin Data Structures is a library that is meant to be the ultimate data structure library for mixed usage of C and C++.
Arbitrary key and value types are implemented by template files that dont use C++ templates, but are instantiated by a Perl script.
This way, mixed usage in C and C++ is possible. However, a C++ interface is generated to support the advantages of the C++ language. No templates, no void*.
Erwin contains a number of tools, too, all of them written in Perl. The following list shows the data structures and tools, together with some typical examples.
<<lessArbitrary key and value types are implemented by template files that dont use C++ templates, but are instantiated by a Perl script.
This way, mixed usage in C and C++ is possible. However, a C++ interface is generated to support the advantages of the C++ language. No templates, no void*.
Erwin contains a number of tools, too, all of them written in Perl. The following list shows the data structures and tools, together with some typical examples.
Download (0.67MB)
Added: 2007-02-09 License: Freely Distributable Price:
997 downloads
Generic Data Structures Library 1.4-pl1
Generic Data Structures Library (GDSL) is a collection of routines for generic data structures manipulation. more>>
Generic Data Structures Library (GDSL) is a collection of routines for generic data structures manipulation.
Generic Data Structures Library is a portable and re-entrant library fully written from scratch in pure ANSI C. It is designed to offer for C programmers common data structures with powerful algorithms, and hidden implementation.
Available structures are lists, queues, stacks, hash tables, binary trees, binary search trees, red-black trees, 2D arrays, and permutations.
GDSL provides a modern Applications Programming Interface (API) for C programmers, while allowing wrappers to be written for very high level languages.
The library covers the following data structures:
- Low-level doubly-linked nodes
- Low-level doubly-linked low-level lists
- Low level binary trees
- Low level binary search trees
- Binary search trees
- Red-black trees
- 2D arrays
- Hash tables
- Lists
- Queues
- Stacks
- Permutations
Enhancements:
- A bug that was introduced in gdsl_hash_insert in the previous release was fixed.
- A missing include in gdsl.h was fixed.
<<lessGeneric Data Structures Library is a portable and re-entrant library fully written from scratch in pure ANSI C. It is designed to offer for C programmers common data structures with powerful algorithms, and hidden implementation.
Available structures are lists, queues, stacks, hash tables, binary trees, binary search trees, red-black trees, 2D arrays, and permutations.
GDSL provides a modern Applications Programming Interface (API) for C programmers, while allowing wrappers to be written for very high level languages.
The library covers the following data structures:
- Low-level doubly-linked nodes
- Low-level doubly-linked low-level lists
- Low level binary trees
- Low level binary search trees
- Binary search trees
- Red-black trees
- 2D arrays
- Hash tables
- Lists
- Queues
- Stacks
- Permutations
Enhancements:
- A bug that was introduced in gdsl_hash_insert in the previous release was fixed.
- A missing include in gdsl.h was fixed.
Download (1.3MB)
Added: 2006-07-07 License: GPL (GNU General Public License) Price:
1204 downloads
Xephyrus Data Structures Tag Library 1.5
Xephyrus Data Structures Tag Library is a tag library to provide access to common data-structures. more>>
Xephyrus Data Structures Tag Library provides an easy way to create and manipulate the contents of common Java data-structures such as maps and lists.
Enhancements:
- The library was polished up.
- Several improvements were made and a few bugs were fixed.
- This version is aimed at Java 5 and JSP 2.0.
<<lessEnhancements:
- The library was polished up.
- Several improvements were made and a few bugs were fixed.
- This version is aimed at Java 5 and JSP 2.0.
Download (0.021MB)
Added: 2005-10-13 License: BSD License Price:
1471 downloads
GraphViz::Data::Structure 0.15
GraphViz::Data::Structure can visualise data structures. more>>
GraphViz::Data::Structure can visualise data structures.
SYNOPSIS
use GraphViz::Data::Structure;
my $gvds = GraphViz:Data::Structure->new($data_structure);
print $gvds->graph()->as_png;
This module makes it easy to visualise data structures, even recursive or circular ones.
It is provided as an alternative to GraphViz::Data::Grapher. Differences:
GraphViz::Data::Structure handles structures of arbitrary depth and complexity, automatically following links using a standard graph traversal algorithm.
GraphViz::Data::Grapher creates graphics of indiividual substructures (arrays, scalars, hashes) which keep the substructure type and data together; GraphViz::Data::Structure does this by shape alone.
GraphViz::Data::Structure encapsulates object info (if any) directly into the node being used to represent the class.
GraphViz::Data::Grapher colors its graphs; GraphViz::Data::Structure doesnt by default.
GraphViz::Data:Structure can parse out globs and CODE references (almost as well as the debugger does).
<<lessSYNOPSIS
use GraphViz::Data::Structure;
my $gvds = GraphViz:Data::Structure->new($data_structure);
print $gvds->graph()->as_png;
This module makes it easy to visualise data structures, even recursive or circular ones.
It is provided as an alternative to GraphViz::Data::Grapher. Differences:
GraphViz::Data::Structure handles structures of arbitrary depth and complexity, automatically following links using a standard graph traversal algorithm.
GraphViz::Data::Grapher creates graphics of indiividual substructures (arrays, scalars, hashes) which keep the substructure type and data together; GraphViz::Data::Structure does this by shape alone.
GraphViz::Data::Structure encapsulates object info (if any) directly into the node being used to represent the class.
GraphViz::Data::Grapher colors its graphs; GraphViz::Data::Structure doesnt by default.
GraphViz::Data:Structure can parse out globs and CODE references (almost as well as the debugger does).
Download (0.040MB)
Added: 2006-08-01 License: Perl Artistic License Price:
1180 downloads
XML::Structured 1.0
XML::Structured is a simple conversion API from XML to perl structures and back. more>>
XML::Structured is a simple conversion API from XML to perl structures and back.
SYNOPSIS
use XML::Structured;
$dtd = [
element =>
attribute1,
attribute2,
[],
element1,
[ element2 ],
[ element3 =>
...
],
[[ element4 =>
...
]],
];
$hashref = XMLin($dtd, $xmlstring);
$hashref = XMLinfile($dtd, $filename_or_glob);
$xmlstring = XMLout($dtd, $hashref);
The XML::Structured module provides a way to convert xml data into a predefined perl data structure and back to xml. Unlike with modules like XML::Simple it is an error if the xml data does not match the provided skeleton (the "dtd"). Another advantage is that the order of the attributes and elements is taken from the dtd when converting back to xml.
<<lessSYNOPSIS
use XML::Structured;
$dtd = [
element =>
attribute1,
attribute2,
[],
element1,
[ element2 ],
[ element3 =>
...
],
[[ element4 =>
...
]],
];
$hashref = XMLin($dtd, $xmlstring);
$hashref = XMLinfile($dtd, $filename_or_glob);
$xmlstring = XMLout($dtd, $hashref);
The XML::Structured module provides a way to convert xml data into a predefined perl data structure and back to xml. Unlike with modules like XML::Simple it is an error if the xml data does not match the provided skeleton (the "dtd"). Another advantage is that the order of the attributes and elements is taken from the dtd when converting back to xml.
Download (0.005MB)
Added: 2006-09-07 License: Perl Artistic License Price:
1142 downloads
Memory Structures Library 4.0
Memory Structures Library (MemSL) is a complete data structures/collection classes library with memory tracing. more>>
Memory Structures Library (MemSL) is a complete data structures/collection classes library with memory tracing, memory debugging, entry/exit tracing, exception handling, definable memory handlers, built-in thread support, and much more.
The project supports single, double, and circular linked lists, AVL balanced and threaded binary trees, dynamic hashing tables, stacks, queues and dequeues (using arrays or linked lists), sets (Pascal implementation, with union, difference, intersection, etc.), bags, tables and dictionaries, priority heaps, priority search queue, and more.
<<lessThe project supports single, double, and circular linked lists, AVL balanced and threaded binary trees, dynamic hashing tables, stacks, queues and dequeues (using arrays or linked lists), sets (Pascal implementation, with union, difference, intersection, etc.), bags, tables and dictionaries, priority heaps, priority search queue, and more.
Download (0.82MB)
Added: 2007-07-04 License: GPL (GNU General Public License) Price:
846 downloads
Construct 2.00
Construct is a python module for defining arbitrary data structures. more>>
Construct is a python module for defining arbitrary data structures. Once a data structure (aka, "construct") is defined, it can be used to both parse raw data into an object and build an object into raw data.
Unlike most parsers, it works at the bit-level, so you dont need to worry about parsing individual bits or unaligned fields.
Construct library supports Fields, Unions, Structs and Repeaters; Adapters and Validators; Switches, Pointers and other Meta -constructs.
Main features:
- Symmetrical -- constructs can be used to parse as well as to build
- Bit-level -- can parse and build individual bits, not only bytes
- Ready -- lots of predefined primitives and common protocols definitions, which you can easily use
- Extensible -- you can easily write user-defined constructs by simply by subclassing
- Fast -- benchmarks on my machine show ~160KB/sec can be parsed, fast enough for most situations, and perhaps pysco can improve that
- Declarative -- no procedural code needed for most situations
Enhancements:
- Construct2 is a rewrite of the library, making it faster and much slimmer.
- The library is now byte-oriented instead of bit-oriented, so it uses eight times less memory.
- It can parse files directly from the disk.
- Meta constructs now use lambda instead of eval.
- Textual processing (context free grammar) was added.
- On-demand parsing was added.
- Thorough unit tests were added.
- A full online tutorial is available.
<<lessUnlike most parsers, it works at the bit-level, so you dont need to worry about parsing individual bits or unaligned fields.
Construct library supports Fields, Unions, Structs and Repeaters; Adapters and Validators; Switches, Pointers and other Meta -constructs.
Main features:
- Symmetrical -- constructs can be used to parse as well as to build
- Bit-level -- can parse and build individual bits, not only bytes
- Ready -- lots of predefined primitives and common protocols definitions, which you can easily use
- Extensible -- you can easily write user-defined constructs by simply by subclassing
- Fast -- benchmarks on my machine show ~160KB/sec can be parsed, fast enough for most situations, and perhaps pysco can improve that
- Declarative -- no procedural code needed for most situations
Enhancements:
- Construct2 is a rewrite of the library, making it faster and much slimmer.
- The library is now byte-oriented instead of bit-oriented, so it uses eight times less memory.
- It can parse files directly from the disk.
- Meta constructs now use lambda instead of eval.
- Textual processing (context free grammar) was added.
- On-demand parsing was added.
- Thorough unit tests were added.
- A full online tutorial is available.
Download (0.060MB)
Added: 2007-01-13 License: Public Domain Price:
1128 downloads
Data::SecsPack 0.06
Data::SecsPack is a Perl module pack and unpack numbers in accordance with SEMI E5-94. more>>
Data::SecsPack is a Perl module pack and unpack numbers in accordance with SEMI E5-94.
SYNOPSIS
#####
# Subroutine interface
#
use Data::SecsPack qw(bytes2int config float2binary
ifloat2binary int2bytes
pack_float pack_int pack_num
str2float str2int
unpack_float unpack_int unpack_num);
$big_integer = bytes2int( @bytes );
$old_value = config( $option );
$old_value = config( $option => $new_value);
($binary_magnitude, $binary_exponent) = float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = ifloat2binary($imagnitude, $iexponent, @options);
@bytes = int2bytes( $big_integer );
($format, $floats) = pack_float($format, @string_floats, [@options]);
($format, $integers) = pack_int($format, @string_integers, [@options]);
($format, $numbers, @string) = pack_num($format, @strings, [@options]);
$float = str2float($string, [@options]);
(@strings, @floats) = str2float(@strings, [@options]);
$integer = str2int($string, [@options]);
(@strings, @integers) = str2int(@strings, [@options]);
@ingegers = unpack_int($format, $integer_string, @options);
@floats = unpack_float($format, $float_string, @options);
@numbers = unpack_num($format, $number_string), @options;
#####
# Class, Object interface
#
# For class interface, use Data::SecsPack instead of $self
#
use Data::SecsPack;
$secspack = Data::SecsPack; # uses built-in config object
$secspack = new Data::SecsPack(@options);
$big_integer = bytes2int( @bytes );
($binary_magnitude, $binary_exponent) = $secspack->float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = $secspack->ifloat2binary($imagnitude, $iexponent, @options);
@bytes = $secspack->int2bytes( $big_integer );
($format, $floats) = $secspack->pack_float($format, @string_integers, [@options]);
($format, $integers) = $secspack->pack_int($format, @string_integers, [@options]);
($format, $numbers, @strings) = $secspack->pack_num($format, @strings, [@options]);
$integer = $secspack->str2int($string, [@options])
(@strings, @integers) = $secspack->str2int(@strings, [@options]);
$float = $secspack->str2float($string, [@options]);
(@strings, @floats) = $secspack->str2float(@strings, [@options]);
@ingegers = $secspack->unpack_int($format, $integer_string, @options);
@floats = $secspack->unpack_float($format, $float_string, @options);
@numbers = $secspack->unpack_num($format, $number_string, @options);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
The subroutines in the Data::SecsPack module packs and unpacks numbers in accordance with SEMI E5-94. The E5-94 establishes the standard for communication between the equipment used to fabricate semiconductors and the host computer that controls the fabrication. The equipment in a semiconductor factory (fab) or any other fab contains every conceivable known microprocessor and operating system known to man. And there are a lot of specialize real-time embedded processors and speciallize real-time embedded operating systems in addition to the those in the PC world.
The communcication between host and equipment used packed nested list data structures that include arrays of characters, integers and floats. The standard has been in place and widely used in China, Germany, Korea, Japan, France, Italy and the most remote corners on this planent for decades. The basic data structure and packed data formats have not changed for decades.
This stands in direct contradiction to the common conceptions of many in the Perl community and most other communities. The following quote is taken from page 761, Programming Perl third edition, discussing the pack subroutine:
"Floating-point numbers are in the native machine format only. Because of the variety of floating format and lack of a standard "network" represenation, no facility for interchange has been made. This means that packed floating-point data written on one machine may not be readable on another. That is a problem even when both machines use IEEE floating-point arithmetic, because the endian-ness of memory representation is not part of the IEEE spec."
There are a lot of things that go over the net that have industry or military standards but no RFCs. So unless you dig them out, you will never know they exist. While RFC and military standards may be freely copyied, industry standards are usually copyrighted. This means if you want to read the standard, you have to pay whatever the market bears. ISO standards, SEMI stardards, American National Standards, IEEE standards beside being boring are expensive. In other words, you do not see them flying out the door at the local Barnes and Nobles. In fact, you will not even find them inside the door.
It very easy to run these non RFC standard protocols over the net. Out of 64,000 ports, pick a port of opportunity (hopefully not one of those low RFC preassigned ports) and configure the equipment and host to the same IP and port. Many times the software will allow a remote console that is watch only. The watch console may even be a web server on port 80. If there is a remote soft console, you can call up or e-mail the equipment manufacturers engineer in say Glouster, MA, USA and tell him the IP and port so he can watch his manchine mangle a cassette of wafers with a potential retail value of half million dollars.
SEMI E5-94 and their precessors do standardize the endian-ness of floating point, the packing of nested data, used in many programming languages, and much, much more. The endian-ness of SEMI E5-94 is the first MSB byte, floats sign bit first. Maybe this is because it makes it easy to spot numbers in a packed data structure.
The nested data has many performance advantages over the common SQL culture of viewing and representing data as tables. The automated fabs of the world make use of SEMI E5-94 nested data not only for real-time communication (TCP/IP RS-2332 etc) between machines but also for snail-time processing as such things as logs and performance data.
Does this standard communications protocol ensure that everything goes smoothly without any glitches with this wild mixture of hardware and software talking to each other in real time? Of course not. Bytes get reverse. Data gets jumbled from point A to point B. Machine time to test software is non-existance. Big ticket, multi-million dollar fab equipment has to work to earn its keep. And, then there is the everyday business of suiting up, with humblizing hair nets, going through air and other showers with your favorite or not so favorite co-worker just to get into the clean room. And make sure not to do anything that will scatch a wafer with a lot of Intel Pentiums on them. It is totally amazing that the product does get out the door.
<<lessSYNOPSIS
#####
# Subroutine interface
#
use Data::SecsPack qw(bytes2int config float2binary
ifloat2binary int2bytes
pack_float pack_int pack_num
str2float str2int
unpack_float unpack_int unpack_num);
$big_integer = bytes2int( @bytes );
$old_value = config( $option );
$old_value = config( $option => $new_value);
($binary_magnitude, $binary_exponent) = float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = ifloat2binary($imagnitude, $iexponent, @options);
@bytes = int2bytes( $big_integer );
($format, $floats) = pack_float($format, @string_floats, [@options]);
($format, $integers) = pack_int($format, @string_integers, [@options]);
($format, $numbers, @string) = pack_num($format, @strings, [@options]);
$float = str2float($string, [@options]);
(@strings, @floats) = str2float(@strings, [@options]);
$integer = str2int($string, [@options]);
(@strings, @integers) = str2int(@strings, [@options]);
@ingegers = unpack_int($format, $integer_string, @options);
@floats = unpack_float($format, $float_string, @options);
@numbers = unpack_num($format, $number_string), @options;
#####
# Class, Object interface
#
# For class interface, use Data::SecsPack instead of $self
#
use Data::SecsPack;
$secspack = Data::SecsPack; # uses built-in config object
$secspack = new Data::SecsPack(@options);
$big_integer = bytes2int( @bytes );
($binary_magnitude, $binary_exponent) = $secspack->float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = $secspack->ifloat2binary($imagnitude, $iexponent, @options);
@bytes = $secspack->int2bytes( $big_integer );
($format, $floats) = $secspack->pack_float($format, @string_integers, [@options]);
($format, $integers) = $secspack->pack_int($format, @string_integers, [@options]);
($format, $numbers, @strings) = $secspack->pack_num($format, @strings, [@options]);
$integer = $secspack->str2int($string, [@options])
(@strings, @integers) = $secspack->str2int(@strings, [@options]);
$float = $secspack->str2float($string, [@options]);
(@strings, @floats) = $secspack->str2float(@strings, [@options]);
@ingegers = $secspack->unpack_int($format, $integer_string, @options);
@floats = $secspack->unpack_float($format, $float_string, @options);
@numbers = $secspack->unpack_num($format, $number_string, @options);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
The subroutines in the Data::SecsPack module packs and unpacks numbers in accordance with SEMI E5-94. The E5-94 establishes the standard for communication between the equipment used to fabricate semiconductors and the host computer that controls the fabrication. The equipment in a semiconductor factory (fab) or any other fab contains every conceivable known microprocessor and operating system known to man. And there are a lot of specialize real-time embedded processors and speciallize real-time embedded operating systems in addition to the those in the PC world.
The communcication between host and equipment used packed nested list data structures that include arrays of characters, integers and floats. The standard has been in place and widely used in China, Germany, Korea, Japan, France, Italy and the most remote corners on this planent for decades. The basic data structure and packed data formats have not changed for decades.
This stands in direct contradiction to the common conceptions of many in the Perl community and most other communities. The following quote is taken from page 761, Programming Perl third edition, discussing the pack subroutine:
"Floating-point numbers are in the native machine format only. Because of the variety of floating format and lack of a standard "network" represenation, no facility for interchange has been made. This means that packed floating-point data written on one machine may not be readable on another. That is a problem even when both machines use IEEE floating-point arithmetic, because the endian-ness of memory representation is not part of the IEEE spec."
There are a lot of things that go over the net that have industry or military standards but no RFCs. So unless you dig them out, you will never know they exist. While RFC and military standards may be freely copyied, industry standards are usually copyrighted. This means if you want to read the standard, you have to pay whatever the market bears. ISO standards, SEMI stardards, American National Standards, IEEE standards beside being boring are expensive. In other words, you do not see them flying out the door at the local Barnes and Nobles. In fact, you will not even find them inside the door.
It very easy to run these non RFC standard protocols over the net. Out of 64,000 ports, pick a port of opportunity (hopefully not one of those low RFC preassigned ports) and configure the equipment and host to the same IP and port. Many times the software will allow a remote console that is watch only. The watch console may even be a web server on port 80. If there is a remote soft console, you can call up or e-mail the equipment manufacturers engineer in say Glouster, MA, USA and tell him the IP and port so he can watch his manchine mangle a cassette of wafers with a potential retail value of half million dollars.
SEMI E5-94 and their precessors do standardize the endian-ness of floating point, the packing of nested data, used in many programming languages, and much, much more. The endian-ness of SEMI E5-94 is the first MSB byte, floats sign bit first. Maybe this is because it makes it easy to spot numbers in a packed data structure.
The nested data has many performance advantages over the common SQL culture of viewing and representing data as tables. The automated fabs of the world make use of SEMI E5-94 nested data not only for real-time communication (TCP/IP RS-2332 etc) between machines but also for snail-time processing as such things as logs and performance data.
Does this standard communications protocol ensure that everything goes smoothly without any glitches with this wild mixture of hardware and software talking to each other in real time? Of course not. Bytes get reverse. Data gets jumbled from point A to point B. Machine time to test software is non-existance. Big ticket, multi-million dollar fab equipment has to work to earn its keep. And, then there is the everyday business of suiting up, with humblizing hair nets, going through air and other showers with your favorite or not so favorite co-worker just to get into the clean room. And make sure not to do anything that will scatch a wafer with a lot of Intel Pentiums on them. It is totally amazing that the product does get out the door.
Download (0.10MB)
Added: 2007-01-15 License: Perl Artistic License Price:
1014 downloads
HTML::Tree::AboutTrees 3.21
HTML::Tree::AboutTrees is a article on tree-shaped data structures in Perl. more>>
HTML::Tree::AboutTrees is a article on tree-shaped data structures in Perl.
This an article, not a module.
The following article by Sean M. Burke first appeared in The Perl Journal #18 and is copyright 2000 The Perl Journal. It appears courtesy of Jon Orwant and The Perl Journal. This document may be distributed under the same terms as Perl itself.
<<lessThis an article, not a module.
The following article by Sean M. Burke first appeared in The Perl Journal #18 and is copyright 2000 The Perl Journal. It appears courtesy of Jon Orwant and The Perl Journal. This document may be distributed under the same terms as Perl itself.
Download (0.11MB)
Added: 2006-09-18 License: GPL (GNU General Public License) Price:
1132 downloads
Data::Dumper 2.121
Data::Dumper module contains stringified perl data structures, suitable for both printing and eval. more>>
Data::Dumper module contains stringified perl data structures, suitable for both printing and eval.
SYNOPSIS
use Data::Dumper;
# simple procedural interface
print Dumper($foo, $bar);
# extended usage with names
print Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]);
# configuration variables
{
local $Data::Dumper::Purity = 1;
eval Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]);
}
# OO usage
$d = Data::Dumper->new([$foo, $bar], [qw(foo *ary)]);
...
print $d->Dump;
...
$d->Purity(1)->Terse(1)->Deepcopy(1);
eval $d->Dump;
Given a list of scalars or reference variables, writes out their contents in perl syntax. The references can also be objects. The contents of each variable is output in a single Perl statement. Handles self-referential structures correctly.
The return value can be evaled to get back an identical copy of the original reference structure.
Any references that are the same as one of those passed in will be named $VARn (where n is a numeric suffix), and other duplicate references to substructures within $VARn will be appropriately labeled using arrow notation. You can specify names for individual values to be dumped if you use the Dump() method, or you can change the default $VAR prefix to something else. See $Data::Dumper::Varname and $Data::Dumper::Terse below.
The default output of self-referential structures can be evaled, but the nested references to $VARn will be undefined, since a recursive structure cannot be constructed using one Perl statement. You should set the Purity flag to 1 to get additional statements that will correctly fill in these references.
In the extended usage form, the references to be dumped can be given user-specified names. If a name begins with a *, the output will describe the dereferenced type of the supplied reference for hashes and arrays, and coderefs. Output of names will be avoided where possible if the Terse flag is set.
In many cases, methods that are used to set the internal state of the object will return the object itself, so method calls can be conveniently chained together.
Several styles of output are possible, all controlled by setting the Indent flag.
<<lessSYNOPSIS
use Data::Dumper;
# simple procedural interface
print Dumper($foo, $bar);
# extended usage with names
print Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]);
# configuration variables
{
local $Data::Dumper::Purity = 1;
eval Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]);
}
# OO usage
$d = Data::Dumper->new([$foo, $bar], [qw(foo *ary)]);
...
print $d->Dump;
...
$d->Purity(1)->Terse(1)->Deepcopy(1);
eval $d->Dump;
Given a list of scalars or reference variables, writes out their contents in perl syntax. The references can also be objects. The contents of each variable is output in a single Perl statement. Handles self-referential structures correctly.
The return value can be evaled to get back an identical copy of the original reference structure.
Any references that are the same as one of those passed in will be named $VARn (where n is a numeric suffix), and other duplicate references to substructures within $VARn will be appropriately labeled using arrow notation. You can specify names for individual values to be dumped if you use the Dump() method, or you can change the default $VAR prefix to something else. See $Data::Dumper::Varname and $Data::Dumper::Terse below.
The default output of self-referential structures can be evaled, but the nested references to $VARn will be undefined, since a recursive structure cannot be constructed using one Perl statement. You should set the Purity flag to 1 to get additional statements that will correctly fill in these references.
In the extended usage form, the references to be dumped can be given user-specified names. If a name begins with a *, the output will describe the dereferenced type of the supplied reference for hashes and arrays, and coderefs. Output of names will be avoided where possible if the Terse flag is set.
In many cases, methods that are used to set the internal state of the object will return the object itself, so method calls can be conveniently chained together.
Several styles of output are possible, all controlled by setting the Indent flag.
Download (0.031MB)
Added: 2007-07-02 License: Perl Artistic License Price:
853 downloads
Structured Document Validator 0.7.9
Structured Document Validator project implements a generalized method for structured documents. more>>
Structured Document Validator project implements a generalized method for validating both the structure and content of structured documents.
Any data format that can be deterministically divided into tags and data is classed as a structured document. This definition applies to a wide array of data formats, including XML, Java properties files, and delimited value files.
The application performs validations based on user-defined Structured Document Definitions (SDDs). It provides an environment for validation, SDD development, and document editing.
<<lessAny data format that can be deterministically divided into tags and data is classed as a structured document. This definition applies to a wide array of data formats, including XML, Java properties files, and delimited value files.
The application performs validations based on user-defined Structured Document Definitions (SDDs). It provides an environment for validation, SDD development, and document editing.
Download (0.59MB)
Added: 2006-01-06 License: LGPL (GNU Lesser General Public License) Price:
1387 downloads
Data::TreeDumper::Renderer::GTK 0.01
Data::TreeDumper::Renderer::GTK is a Gtk2::TreeView renderer for Data::TreeDumper. more>>
Data::TreeDumper::Renderer::GTK is a Gtk2::TreeView renderer for Data::TreeDumper.
SYNOPSIS
my $treedumper = Data::TreeDumper::Renderer::GTK->new
(
data => %data,
title => Test Data,
dumper_setup => {DISPLAY_PERL_SIZE => 1}
);
$treedumper->modify_font(Gtk2::Pango::FontDescription->from_string (monospace));
$treedumper->expand_all;
# some boilerplate to get the widget onto the screen...
my $window = Gtk2::Window->new;
my $scroller = Gtk2::ScrolledWindow->new;
$scroller->add ($treedumper);
$window->add ($scroller);
$window->show_all;
HIERARCHY
Glib::Object
+----Gtk2::Object
+----Gtk2::Widget
+----Gtk2::Container
+----Gtk2::TreeView
+----Mup::TreeDumper
GTK-perl renderer for Data::TreeDumper.
This widget is the gui equivalent of Data::TreeDumper; it will display a perl data structure in a TreeView, allowing you to fold and unfold child data structures and get a quick feel for whats where. Right-clicking anywhere in the view brings up a context menu, from which the user can choose to expand or collapse all items.
<<lessSYNOPSIS
my $treedumper = Data::TreeDumper::Renderer::GTK->new
(
data => %data,
title => Test Data,
dumper_setup => {DISPLAY_PERL_SIZE => 1}
);
$treedumper->modify_font(Gtk2::Pango::FontDescription->from_string (monospace));
$treedumper->expand_all;
# some boilerplate to get the widget onto the screen...
my $window = Gtk2::Window->new;
my $scroller = Gtk2::ScrolledWindow->new;
$scroller->add ($treedumper);
$window->add ($scroller);
$window->show_all;
HIERARCHY
Glib::Object
+----Gtk2::Object
+----Gtk2::Widget
+----Gtk2::Container
+----Gtk2::TreeView
+----Mup::TreeDumper
GTK-perl renderer for Data::TreeDumper.
This widget is the gui equivalent of Data::TreeDumper; it will display a perl data structure in a TreeView, allowing you to fold and unfold child data structures and get a quick feel for whats where. Right-clicking anywhere in the view brings up a context menu, from which the user can choose to expand or collapse all items.
Download (0.004MB)
Added: 2006-07-11 License: Perl Artistic License Price:
1200 downloads
Rubytree 0.2.4
Rubytree is a simple to use general purpose tree data structure implementation in Ruby. more>>
Rubytree is a simple to use general purpose tree data structure implementation in Ruby.
It provides easy access methods for navigating the hierarchy, as well as for accessing the nodes. Rubytree project also provides ability to marshal the entire tree structure.
Enhancements:
- Minor changes were made to the documentation.
<<lessIt provides easy access methods for navigating the hierarchy, as well as for accessing the nodes. Rubytree project also provides ability to marshal the entire tree structure.
Enhancements:
- Minor changes were made to the documentation.
Download (0.005MB)
Added: 2007-06-24 License: GPL (GNU General Public License) Price:
852 downloads
Data::Diff 0.01
Data::Diff is a data structure comparison module. more>>
Data::Diff is a data structure comparison module.
SYNOPSIS
use Data::Diff qw(diff);
# simple procedural interface to raw difference output
$out = diff( $a, $b );
# OO usage
$diff = Data::Diff->new( $a, $b );
$new = $diff->apply();
$changes = $diff->diff_a();
Data::Diff computes the differences between two abirtray complex data structures.
METHODS
Creation
new Data::Diff( $a, $b, $options )
Creates and retruns a new Data::Diff object with the differences between $a and $b.
Access
apply( $options )
Returns the result of applying one side over the other.
raw()
Returns the internal data structure that describes the differences at all levels within.
Functions
Diff( $a, $b, $options )
Compares the two arguments $a and $b and returns the raw comparison between the two.
EXPORT
Nothing by default but you can choose to export the non-OO function Diff().
<<lessSYNOPSIS
use Data::Diff qw(diff);
# simple procedural interface to raw difference output
$out = diff( $a, $b );
# OO usage
$diff = Data::Diff->new( $a, $b );
$new = $diff->apply();
$changes = $diff->diff_a();
Data::Diff computes the differences between two abirtray complex data structures.
METHODS
Creation
new Data::Diff( $a, $b, $options )
Creates and retruns a new Data::Diff object with the differences between $a and $b.
Access
apply( $options )
Returns the result of applying one side over the other.
raw()
Returns the internal data structure that describes the differences at all levels within.
Functions
Diff( $a, $b, $options )
Compares the two arguments $a and $b and returns the raw comparison between the two.
EXPORT
Nothing by default but you can choose to export the non-OO function Diff().
Download (0.006MB)
Added: 2007-07-13 License: Perl Artistic License Price:
833 downloads
Data::Serializer 0.41
Data::Serializer package contains modules that serialize data structures. more>>
Data::Serializer package contains modules that serialize data structures.
SYNOPSIS
use Data::Serializer;
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Storable,
digester => MD5,
cipher => DES,
secret => my secret,
compress => 1,
);
$serialized = $obj->serialize({a => [1,2,3],b => 5});
$deserialized = $obj->deserialize($serialized);
print "$deserialized->{b}n";
Provides a unified interface to the various serializing modules currently available. Adds the functionality of both compression and encryption.
EXAMPLES
Please see Data::Serializer::Cookbook(3)
METHODS
new - constructor
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Data::Dumper,
digester => SHA-256,
cipher => Blowfish,
secret => undef,
portable => 1,
compress => 0,
serializer_token => 1,
options => {},
);
new is the constructor object for Data::Serializer objects.
The default serializer is Data::Dumper
The default digester is SHA-256
The default cipher is Blowfish
The default secret is undef
The default portable is 1
The default encoding is hex
The default compress is 0
The default compressor is Compress::Zlib
The default serializer_token is 1
The default options is {} (pass nothing on to serializer)
serialize - serialize reference
$serialized = $obj->serialize({a => [1,2,3],b => 5});
Serializes the reference specified.
Will compress if compress is a true value.
Will encrypt if secret is defined.
deserialize - deserialize reference
$deserialized = $obj->deserialize($serialized);
Reverses the process of serialization and returns a copy of the original serialized reference.
freeze - synonym for serialize
$serialized = $obj->freeze({a => [1,2,3],b => 5});
thaw - synonym for deserialize
$deserialized = $obj->thaw($serialized);
raw_serialize - serialize reference in raw form
$serialized = $obj->raw_serialize({a => [1,2,3],b => 5});
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
raw_deserialize - deserialize reference in raw form
$deserialized = $obj->raw_deserialize($serialized);
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
secret - specify secret for use with encryption
$obj->secret(mysecret);
Changes setting of secret for the Data::Serializer object. Can also be set in the constructor. If specified than the object will utilize encryption.
portable - encodes/decodes serialized data
Uses encoding method to ascii armor serialized data
Aids in the portability of serialized data.
compress - compression of data
Compresses serialized data. Default is not to use it. Will compress if set to a true value $obj->compress(1);
serializer - change the serializer
Currently have 8 supported serializers: Storable, FreezeThaw, Data::Denter, Config::General, YAML, PHP::Serialization, XML::Dumper, and Data::Dumper.
Default is to use Data::Dumper.
Each serializer has its own caveats about usage especially when dealing with cyclical data structures or CODE references. Please see the appropriate documentation in those modules for further information.
cipher - change the cipher method
Utilizes Crypt::CBC and can support any cipher method that it supports.
digester - change digesting method
Uses Digest so can support any digesting method that it supports. Digesting function is used internally by the encryption routine as part of data verification.
compressor - changes compresing module
This method is included for possible future inclusion of alternate compression method Currently Compress::Zlib is the only supported compressor.
encoding - change encoding method
Encodes data structure in ascii friendly manner. Currently the only valid options are hex, or b64.
The b64 option uses Base64 encoding provided by MIME::Base64, but strips out newlines.
serializer_token - add usage hint to data
Data::Serializer prepends a token that identifies what was used to process its data. This is used internally to allow runtime determination of how to extract Serialized data. Disabling this feature is not recommended.
options - pass options through to underlying serializer
Currently is only supported by Config::General, and XML::Dumper.
my $obj = Data::Serializer->new(serializer => Config::General,
options => {
-LowerCaseNames => 1,
-UseApacheInclude => 1,
-MergeDuplicateBlocks => 1,
-AutoTrue => 1,
-InterPolateVars => 1
},
) or die "$!n";
or
my $obj = Data::Serializer->new(serializer => XML::Dumper,
options => { dtd => 1, }
) or die "$!n";
store - serialize data and write it to a file (or file handle)
$obj->store({a => [1,2,3],b => 5},$file, [$mode, $perm]);
or
$obj->store({a => [1,2,3],b => 5},$fh);
Serializes the reference specified using the serialize method and writes it out to the specified file or filehandle.
If a file path is specified you may specify an optional mode and permission as the next two arguments. See IO::File for examples.
Trips an exception if it is unable to write to the specified file.
retrieve - read data from file (or file handle) and return it after deserialization
my $ref = $obj->retrieve($file);
or
my $ref = $obj->retrieve($fh);
Reads first line of supplied file or filehandle and returns it deserialized.
<<lessSYNOPSIS
use Data::Serializer;
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Storable,
digester => MD5,
cipher => DES,
secret => my secret,
compress => 1,
);
$serialized = $obj->serialize({a => [1,2,3],b => 5});
$deserialized = $obj->deserialize($serialized);
print "$deserialized->{b}n";
Provides a unified interface to the various serializing modules currently available. Adds the functionality of both compression and encryption.
EXAMPLES
Please see Data::Serializer::Cookbook(3)
METHODS
new - constructor
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Data::Dumper,
digester => SHA-256,
cipher => Blowfish,
secret => undef,
portable => 1,
compress => 0,
serializer_token => 1,
options => {},
);
new is the constructor object for Data::Serializer objects.
The default serializer is Data::Dumper
The default digester is SHA-256
The default cipher is Blowfish
The default secret is undef
The default portable is 1
The default encoding is hex
The default compress is 0
The default compressor is Compress::Zlib
The default serializer_token is 1
The default options is {} (pass nothing on to serializer)
serialize - serialize reference
$serialized = $obj->serialize({a => [1,2,3],b => 5});
Serializes the reference specified.
Will compress if compress is a true value.
Will encrypt if secret is defined.
deserialize - deserialize reference
$deserialized = $obj->deserialize($serialized);
Reverses the process of serialization and returns a copy of the original serialized reference.
freeze - synonym for serialize
$serialized = $obj->freeze({a => [1,2,3],b => 5});
thaw - synonym for deserialize
$deserialized = $obj->thaw($serialized);
raw_serialize - serialize reference in raw form
$serialized = $obj->raw_serialize({a => [1,2,3],b => 5});
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
raw_deserialize - deserialize reference in raw form
$deserialized = $obj->raw_deserialize($serialized);
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
secret - specify secret for use with encryption
$obj->secret(mysecret);
Changes setting of secret for the Data::Serializer object. Can also be set in the constructor. If specified than the object will utilize encryption.
portable - encodes/decodes serialized data
Uses encoding method to ascii armor serialized data
Aids in the portability of serialized data.
compress - compression of data
Compresses serialized data. Default is not to use it. Will compress if set to a true value $obj->compress(1);
serializer - change the serializer
Currently have 8 supported serializers: Storable, FreezeThaw, Data::Denter, Config::General, YAML, PHP::Serialization, XML::Dumper, and Data::Dumper.
Default is to use Data::Dumper.
Each serializer has its own caveats about usage especially when dealing with cyclical data structures or CODE references. Please see the appropriate documentation in those modules for further information.
cipher - change the cipher method
Utilizes Crypt::CBC and can support any cipher method that it supports.
digester - change digesting method
Uses Digest so can support any digesting method that it supports. Digesting function is used internally by the encryption routine as part of data verification.
compressor - changes compresing module
This method is included for possible future inclusion of alternate compression method Currently Compress::Zlib is the only supported compressor.
encoding - change encoding method
Encodes data structure in ascii friendly manner. Currently the only valid options are hex, or b64.
The b64 option uses Base64 encoding provided by MIME::Base64, but strips out newlines.
serializer_token - add usage hint to data
Data::Serializer prepends a token that identifies what was used to process its data. This is used internally to allow runtime determination of how to extract Serialized data. Disabling this feature is not recommended.
options - pass options through to underlying serializer
Currently is only supported by Config::General, and XML::Dumper.
my $obj = Data::Serializer->new(serializer => Config::General,
options => {
-LowerCaseNames => 1,
-UseApacheInclude => 1,
-MergeDuplicateBlocks => 1,
-AutoTrue => 1,
-InterPolateVars => 1
},
) or die "$!n";
or
my $obj = Data::Serializer->new(serializer => XML::Dumper,
options => { dtd => 1, }
) or die "$!n";
store - serialize data and write it to a file (or file handle)
$obj->store({a => [1,2,3],b => 5},$file, [$mode, $perm]);
or
$obj->store({a => [1,2,3],b => 5},$fh);
Serializes the reference specified using the serialize method and writes it out to the specified file or filehandle.
If a file path is specified you may specify an optional mode and permission as the next two arguments. See IO::File for examples.
Trips an exception if it is unable to write to the specified file.
retrieve - read data from file (or file handle) and return it after deserialization
my $ref = $obj->retrieve($file);
or
my $ref = $obj->retrieve($fh);
Reads first line of supplied file or filehandle and returns it deserialized.
Download (0.025MB)
Added: 2007-07-12 License: Perl Artistic License Price:
834 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above data structures search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed