Main > Free Download Search >

Free benchmark software for linux

benchmark

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 88
SuperGamer Supreme

SuperGamer Supreme


SuperGamer Supreme gives you interesting games created for Linux desktop operating system. more>>

SuperGamer Supreme gives you interesting games created for Linux desktop operating system. It has all the normal Linux desktop applications such as the Firefox Browser, OpenOffice.org, etc., but also has a great many native to Linux games added, as well as some demos of proprietary games.

The games (in the order they appear on the launch bar) Include:

  • Quake Wars
  • Doom 3
  • Prey
  • Unreal Tournament
  • Quake 4
  • Savage 2
  • Postal 2
  • Enemy Territory
  • Penumbra Black Plague
  • Sauerbraten
  • Urban Terror
  • Soldier Of Fortune
  • Torcs
  • Tremulous
  • AlienArena
  • True Combat
  • America's Army
  • Nexus
  • OpenArena
  • PlaneShift
  • Drop Team
  • Frets On Fire
  • Chromium B.S.U.
  • Mad Bomber
  • X-Moto
  • BZ Flag
  • Mega Mario
  • Glaxium
  • GL-117
  • NeverBall
  • NeverPutt
  • Super Tux
  • PPRacer

Major Features:

  1. This Supreme SuperGamer version will work on both 32 and 64 bit PCs and fills a full Live Dual Layer DVD.
  2. It includes support for ethernet, wireless, and dialup Internet connections.
  3. It can run in "Live" mode directly from the DVD and can be optionally installed to your hard drive.
  4. A few key includes are 2.6.27.24 kernel, Azureus, Gparted, Limewire, Gimp, K9copy, KOffice, OpenOffice 3, Hardinfo (system profiler and benchmark) along with all the plugins for firefox with forcastbar enhanced, adblock, and blockxxx included (blockxxx is a child word and website filter which is not enabled by default as it blocks alot of stuff...almost to much).
<<less
Added: 2009-07-25 License: GPL Price: FREE
1 downloads
PeaZip For Linux 2.2

PeaZip For Linux 2.2


Free archiver utility, open 7Z, ACE, PAQ, TAR, RAR, ZIP, encrypt and split files more>> PeaZip is an open source file and archive manager for 32 and 64 bit Windows (9x, 2000, XP, Vista) and Linux.
For both platforms it is available as installable or portable package, not needing installation.
Full support: 7Z, 7Z-sfx, ARC/WRC, BZ2/TBZ2, GZ/TGZ, PAQ/LPAQ, PEA, QUAD/BALZ, split, TAR, UPX, ZIP.
Open, browse, extract, test: ACE, ARJ, CAB, CHM, COMPOUND (MSI, DOC, XLS, PPT), CPIO, ISO, Java (JAR, EAR, WAR), Linux (DEB, PET/PUP, RPM, SLP), LHA/LZH, LZMA, NSIS, OOo, PAK/PK3/PK4, RAR, SMZIP, U3P, WIM, XPI, Z/TZ (71 file extension supported).
Other features: powerful search and filter functions, robust file copy, split/join files, quick or secure file deletion, compare/checksum/hash files, system benchmark, generate random passwords and keyfiles, two factor authentication, strong encryption (AES256).
PeaZip allows to: create/extract multiple archives at once, save archives layout, save job definition as command line (to be inspected, or used in scripts), save job logs.
The user interface is skinnable for colors, transparence and icons.
<<less
Download (3.24MB)
Added: 2009-04-22 License: Freeware Price: free
185 downloads
 
Other version of PeaZip For Linux
PeaZip for Linux 2.1secure file deletion, byte to byte compare files, checksum/hash files, system benchmark, generate random passwords and keyfiles. PeaZip allows to: browse files and archives (with multiple
License:Freeware
Download (5.47MB)
182 downloads
Added: 2009-04-24
3Delight for 64-bit Linux 7.0

3Delight for 64-bit Linux 7.0


3Delight is a renderer to produce photo-realistic images on 64-bit linux. more>> 3Delight is a fast, high quality, RenderMan-compliant renderer designed to produce photo-realistic images in demanding production environments. The renderer was introduced to the public in the year 2000 after being used for more than a year as the sole renderer in a sister production company. It is now widely used and earning a reputation as a benchmark in rendering technology.
Some of its features include ray tracing, global illumination (including photon mapping, final gathering and high dynamic range lighting and rendering), realistic motion blur, depth of field, complete geometry support (including efficient rendering of hair and fur), programmable shaders, quality antialiasing and antialiased shadow maps. Advanced features include Ri filtering, network caching and highly customizable workflow.
Follows a summary of 3Delights features.
-RenderMan Compliant
-RenderMan Shading Language Support
-Rendering Features
-Geometry Support
-Fast and Efficient Rendering
-Extensible Display Drivers
-Multi-platform Support with Specific Code Optimization
<<less
Download (10.1MB)
Added: 2009-04-12 License: Freeware Price: Free
194 downloads
3Delight for 32-bit Linux 7.0

3Delight for 32-bit Linux 7.0


3Delight is a renderer to produce photo-realistic images on 32-bit linux. more>> 3Delight is a fast, high quality, RenderMan-compliant renderer designed to produce photo-realistic images in demanding production environments. The renderer was introduced to the public in the year 2000 after being used for more than a year as the sole renderer in a sister production company. It is now widely used and earning a reputation as a benchmark in rendering technology.
Some of its features include ray tracing, global illumination (including photon mapping, final gathering and high dynamic range lighting and rendering), realistic motion blur, depth of field, complete geometry support (including efficient rendering of hair and fur), programmable shaders, quality antialiasing and antialiased shadow maps. Advanced features include Ri filtering, network caching and highly customizable workflow.
Follows a summary of 3Delights features.
-RenderMan Compliant
-RenderMan Shading Language Support
-Rendering Features
-Geometry Support
-Fast and Efficient Rendering
-Extensible Display Drivers
-Multi-platform Support with Specific Code Optimization
<<less
Download (11.4MB)
Added: 2009-04-11 License: Freeware Price: Free
195 downloads
bandwidth 0.13

bandwidth 0.13


bandwidth project is an artificial benchmark for measuring memory bandwidth, useful for identifying a computers weak areas. more>>
bandwidth project is an artificial benchmark for measuring memory bandwidth, useful for identifying a computers weak areas.
It tests several types of memory:
- Main memory read accesses
- Main memory write accesses
- Level 2 cache read accesses
- Level 2 cache write accesses
- Framebuffer read accesses
- Framebuffer write accesses
- String library routines
Enhancements:
- 64-bit support has been added.
<<less
Download (0.009MB)
Added: 2007-08-22 License: GPL (GNU General Public License) Price:
1112 downloads
Text::Scraper 0.02

Text::Scraper 0.02


Text::Scraper contains structured data from (un)structured text. more>>
Text::Scraper contains structured data from (un)structured text.

SYNOPSIS

use Text::Scraper;

use LWP::Simple;
use Data::Dumper;

#
# 1. Get our template and source text
#
my $tmpl = Text::Scraper->slurp(*DATA);
my $src = get(http://search.cpan.org/recent) || die $!;

#
# 2. Extract data from source
#
my $obj = Text::Scraper->new(tmpl => $tmpl);
my $data = $obj->scrape($src);

#
# 3. Do something really neat...(left as excercise)
#
print "Newest Submission: ", $data->[0]{submissions}[0]{name}, "nn";
print "Scraper model:n", Dumper($obj), "nn";
print "Parsed model:n", Dumper($data) , "nn";

__DATA__

< div class=path>< center>< table>< tr>
< ?tmpl stuff pre_nav ?>
< td class=datecell>< span>< big>< b> < ?tmpl var date_string ?> < /b>< /big>< /span>< /td>
< ?tmpl stuff post_nav ?>
< /tr>< /table>< /center>< /div>

< ul>
< ?tmpl loop submissions ?>
< li>< a href="< ?tmpl var link ?>">< ?tmpl var name ?>< /a>
< ?tmpl if has_description ?>
< small> -- < ?tmpl var description ?>< /small>
< ?tmpl end has_description ?>
< /li>
< ?tmpl end submissions ?>
< /ul>

ABSTRACT

Text::Scraper provides a fully functional base-class to quickly develop Screen-Scrapers and other text extraction tools. Programmatically generated text such as dynamic webpages are trivially reversed engineered.

Using templates, the programmer is freed from staring at fragile, heavily escaped regular expressions, mapping capture groups to named variables or wrestling with the DOM and badly formed HTML. In addition, extracted data can be hierarchical, which is beyond the capabilities of vanilla regular expressions.

Text::Scrapers functionality overlaps some existing CPAN modules - Template::Extract and WWW::Scraper.
Text::Scraper is much more lightweight than either and has a more general application domain than the latter. It has no dependencies on other frameworks, modules or design-decisions. On average, Text::Scraper benchmarks around 250% faster than Template::Extract - and uses significantly less memory.

Unlike both existing modules, Text::Scraper generalizes its functionality to allow the programmer to refine template capture groups beyond (.*?), fully redefine the template syntax and introduce new template constructs bound to custom classes.

<<less
Download (0.045MB)
Added: 2007-08-22 License: Perl Artistic License Price:
796 downloads
John The Ripper MPI 1.7.2-bp17-mpi6

John The Ripper MPI 1.7.2-bp17-mpi6


John The Ripper MPI is an updated version of Ryan Lims patch for john the ripper to support MPI more>>
John The Ripper MPI is an updated version of Ryan Lims patch for john the ripper to support MPI, in addition to a large number of third party patches to support additional ciphers and such.
MPI allows you to use multiple processors on a single system, or a cluster of systems for cracking passwords using john the ripper. Incredibly usefull in these days of multi core processors.
A compatible MPI implementation is required.
Benchmarks
Dual Core Intel Core2 Duo, 2.16GHz, MacBook Pro MacOSX
John MPI - Version 1.7.2-bp17-mpi4, 2 threads
Benchmarking: Traditional DES [128/128 BS SSE2]... DONE
Many salts: 3433087.00 c/s real, 3636739.00 c/s virtual
Only one salt: 2852658.00 c/s real, 3021898.00 c/s virtual
Dual AMD Opteron 250 (2.2ghz), Gentoo Linux 64bit
John MPI - Version 1.7.2-bp17-mpi, 2 threads
Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE
Many salts: 2132632.00 c/s real, 2139034.00 c/s virtual
Only one salt: 1951692.00 c/s real, 1957552.00 c/s virtual
Version restrictions:
- If you use Gentoo, make sure you compile mpich2 _WITHOUT_ the "threads" use flag, otherwise john-mpi will fail to compile with undefined references to MPIU_Free and MPIU_Malloc
- If you use OpenMPI instead of mpich2, the SIGHUP signal doesnt get passed to john. It is necessary to send a SIGUSR1 instead.
Enhancements:
- Support for SIGUSR1 as well as SIGHUP, required for use with OpenMPI
<<less
Download (0.83MB)
Added: 2007-08-18 License: GPL (GNU General Public License) Price:
575 downloads
Data::BenchmarkResults 0.01

Data::BenchmarkResults 0.01


Data::BenchmarkResults is a Perl extension for averaging and comparing multiple benchmark runs. more>>
Data::BenchmarkResults is a Perl extension for averaging and comparing multiple benchmark runs.

SYNOPSIS

use Data::BenchmarkResults;
$conditionA_results = new Data::BenchmarkResults;
$conditionB_results = new Data::BenchmarkResults;

#Load test result runs for the first condition
$conditionA_results->add_result_set("test1","run1",@data1);
$conditionA_results->add_result_set("test2","run1",@data2);
$conditionA_results->add_result_set("test1","run2",@data3);
$conditionA_results->add_result_set("test2","run2",@data4);

#Load test result runs for the second condition
$conditionB_results->add_result_set("test1","run1",@data5);
$conditionB_results->add_result_set("test2","run2",@data6);
$conditionB_results->add_result_set("test1","run1",@data7);
$conditionB_results->add_result_set("test2","run2",@data8);

#Average (mean average) the results of all the the runs of test1
# w/o tossing the highest and lowest values (replace the 0 with 1to
# toss the highest and lowest values

my $computed = $conditionA_results->process_result_set("test1","mean",0);
my $computed2 = $conditionB_results->process_result_set("test1","mean",0);

#OR process all of the tests at once (tossing the highest and lowest value) :

$conditionA_results->process_all_result_sets("mean",1);
$conditionB_results->process_all_result_sets("mean",1);


#Print out all of the processed test results
print "Condition A results.... nn"
$conditionA_results->print_calculated_sets;
print "Condition B results.... nn"
$conditionB_results->print_calculated_sets;


#Compare results of test1 of condition B against those with condition A
# as a percentage change from A to B

my $compared = $conditionB_results->compare_result_set($conditionA_results,"test1");

#OR compare all the processed test results from one condition to those of another
my $total_comparison = $conditionB_results->compare_all_result_sets($conditionA_results);

<<less
Download (0.009MB)
Added: 2007-08-16 License: Perl Artistic License Price:
799 downloads
fio 1.17

fio 1.17


fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. more>>
fio is an I/O tool meant to be used both for benchmark and stress/hardware verification.
fio project has support for 4 different types of I/O engines (sync, mmap, libaio, posixaio), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files.
fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information, such as completion and submission latencies (avg/mean/deviation), bandwidth stats, cpu and disk utilization, and more.
Options:
$ fio
-s IO is sequential
-b block size in KiB for each io
-t < sec > Runtime in seconds
-r For random io, sequence must be repeatable
-R < on > If one thread fails to meet rate, quit all
-o < on > Use direct IO is 1, buffered if 0
-l Generate per-job latency logs
-w Generate per-job bandwidth logs
-f < file > Read < file > for job descriptions
Examples using a job file:
A sample job file doing the same as above would look like this:
[read_file]
rw=0
bs=4096
[write_file]
rw=1
bs=16384
And fio would be invoked as:
$ fio -o1 -s -f file_with_above
The second example would look like this:
[rf1]
rw=0
prio=6
[rf2]
rw=0
prio=3
[rf3]
rw=0
prio=0
direct=1
And fio would be invoked as:
$ fio -o0 -s -b4096 -f file_with_above
global is a reserved keyword. When used as the filename, it sets the default options for the threads following that section. It is possible to have more than one global section in the file, as it only affects subsequent jobs.
Enhancements:
- Support for replaying blktrace logs, full splice support (network and normal), adaptive latency histograms, many data verification improvements and additions, and many bugfixes and improvements.
<<less
Download (1.0MB)
Added: 2007-08-14 License: GPL (GNU General Public License) Price:
802 downloads
LinPHA 1.3.2

LinPHA 1.3.2


LinPHA is a PHP-based photo gallery/album. more>>
LinPHA is an easy-to-use, multilingual, flexible photo/image archive/album/gallery written in PHP.
It uses an SQL database (MySQL or PostgreSQL) to store information about your pictures. It comes with an HTML-based installer, so you dont need experience in setting up SQL databases.
Thumbnails are created as needed and stored in the SQL DB. LinPHA features complete user management, top ten statistics, hidden albums, different themes, filemanager, uploader, slideshow, watermarks, benchmark, printing, and more.
Enhancements:
- Fix for possible LinPHA new_images.php SQL Injection vulnerability with MySQL Server >=4.1
<<less
Download (MB)
Added: 2007-08-10 License: GPL (GNU General Public License) Price:
810 downloads
svk 2.0.2

svk 2.0.2


svk is a decentralized version control system. more>>
svk is a decentralized version control system written in Perl. svk project uses the Subversion filesystem but provides additional, powerful features. svk was originally developed by ChiaLiangKao, with the help from SVKPeople and generous SVKSponsors.
Main features:
- svk uses the subversion fs library. the SVN::XD module is a svn_wc (working copy) replacement (XD is character increment of WC).
- SVN::XD does not use the .svn for checkout meta-data. it uses Data::Hierarchy for storing per-directory meta-data in a compact way. Read about WhyXD.
- svk uses svm (svn mirror) for retrieving remote repositories (via ra) to a certain point of the local repository. There are plans to integrate svm and vcp so we have instant ability to branch remote cvs or perforce.
- the depot spec is like : . ~/.svk/config holds a depotmap hash for mapping depotname (which could be empty) to a path containing a subversion repository.
- when committing (or merging) into the mirrored directory, svm provides a commit editor for svk to use. the merge brings changes from local to remote repository if theres no conflict.
- using a local repository holding the subversion tree for benchmark, svk checkout time is 3 times faster than svn.
Enhancements:
- Perl 5.9.5 compatibility, various fixes in the merge subsystem, and some Win32 fixes.
<<less
Download (0.41MB)
Added: 2007-08-08 License: Perl Artistic License Price:
809 downloads
HardInfo 0.4.2.2

HardInfo 0.4.2.2


HardInfo is a benchmark tool and system information for Linux systems. more>>
HardInfo is a benchmark tool and system information for Linux systems.
Main features:
Get information about your computer:
- The Processor
- Operating System
- Languages
- Sensors
- Filesystems
- Shared Directories
- Display
- Network Interfaces
Its devices (and what controls them):
- Kernel Modules
- PCI Devices
- USB Devices
- Printers
- Input Devices
- Storage
Benchmark:
- ZLib
- MD5 and SHA1
- And generate nicely-formatted HTML reports!
Enhancements:
- Maintenance version.
- Mostly bugfixes, plugged memory leaks.
- Minor feature enhancements.
<<less
Download (0.20MB)
Added: 2007-07-21 License: GPL (GNU General Public License) Price:
831 downloads
GliBench SMP 0.5

GliBench SMP 0.5


GliBench is a Gui based benchmarking tool to check your computers CPU and hard disk performance. more>>
GliBench is a Gui based benchmarking tool to check your computers CPU and hard disk performance. The software is based on the benchmarks I developed for CliBench Mk III SMP a SMP enabled benchmark program for Win32.
There were several tries to port it to other architectures than Win32, but this was not that easy. So I decided to to a Linux port, based on the GTK toolkit with Gnome support, as Linux runs on almost every hardware around and GTK is quite easy to port to other OSs.
The CPU tests are all ported to ANSI C. They run fully multithreaded using posix threads. You can already use the program for benchmarking your hardware.
Enhancements:
- The application was completely rewritten for GTK+ 2.x and Glib 2.x.
- New stress tests and threaded I/O tests for benchmarking hard drives are available.
- Both console and GUI interfaces are available.
<<less
Download (0.092MB)
Added: 2007-07-18 License: GPL (GNU General Public License) Price:
829 downloads
PagePoker 1.2

PagePoker 1.2


PagePoker is a Perl package that defines a browser agent with many powerful features for monitoring and testing Web sites. more>>
PagePoker is a Perl package that defines a browser agent with many powerful features for monitoring and testing Web sites, including elaborate failure handling that can send email and trigger SNMP traps. The application comes with three scripts that implement it for different uses: poke.pl, for single agents; pokes.pl, for many parallel agents, and pokehard.pl, for loadtesting and benchmarking.

HOW-TO:

Run "poke.pl --help" for detailed help on using the package. Briefly, poke.pl creates a PagePoker object, accepting all sorts of options. It is designed for monitoring web pages to verify they are returning desired information or to dump the contents of web pages to a file (like fetch). It can loop on a variety of conditions and crawl a series of pages, posting and passing cookies. The other component, pokes.pl, is simply a forking variation that accepts as its parameters an agent id and the options for that agent. It can be used for monitoring many sites simultaneously or for load testing single sites. On a dual 400 mhz machine I was able to run about 120 concurrent agents.

Examples:

> poke.pl --url http://node.to

returns (first element is date):
20000225170507 SUCCESS: Page loaded by agent

> poke.pl --url http://node.to --no-status --print-response

returns the plain html

> pokes.pl agent1 "--url http://node.to --no-status --email-failures
--email-address who@node.to --iterations 1000 --interval 10"
agent2 "--urls http://node.to>>http://tiny.node.to
--no-status --email-failures --email-address "1@1.com 2@2.com""

will launch two agents, first agent will poll node.to for connection failures every 10 seconds 1000 times, emailing if a failure is encountered, second agent will hit node.to then tiny.node.to and exit, emailing two people if either one doesnt respond.

There is a lot of logic to control how often and under what conditions email is sent. You can search for desired in text the headers or the html response, and send email or snmp traps on certain failure conditions. To loadtest, you could launch looping batches of ten agents, adding ten more a minute later in a another process, etc.

More advanced load testing can be done with pokehard.pl. It gets its own README (README.pokehard).

Here is the output of poke.pl --help, minus the USAGE statement:

How to use it:

--url "http://host/page"

--urls "http://host/page1>>http://host/page2>>etc"

--urls-from-file "file_path"

--urls-delay "n"
Seconds between each request

--method {GET|POST}

--post-query "query string"

--basic-auth-name "agent login" (one per agent)

--basic-auth-pass "agent password"

--interval "n"
Loop with n seconds between pokes

--iterations "n"
Cycles to run loop (requires --interval)

--look-for "pattern to find in response text"

--resend-cookie "cookiename"

--resend-cookie-between-iterations
Allow cookie to be resent through all iterations

--use-verbose-response
Includes headers in response text

--print-response
Dump agent retrieved text to STDOUT

--disable-on-failure
Allow server disabling on failure

--disable-snmp-trap "snmp trap"
To disable in loadbalancer

--enable-on-recovery
Allow server re-enabling on recovery

--enable-snmp-trap "snmp trap"
To enable server after successful run

--email-failures
Turn on alarm emails

--email-addresses "address1 address2 etc"

--email-subject "override default with arbitrary text"

--failures-until-email "n"
Consecutive errors triggers email

--min-time-between-emails "seconds"

--die-after-date "yyyymmddhhmmss" (requires interval and iterations)

--benchmark
Store numbers used for performance measurement (by pokehard.pl)

--quiet
Output nothing (except email, if set)

--no-status
Do not output status info (ie SUCCESS, etc)

--print-to-file "file"
Write output to file

--help
Print this text and exit

<<less
Download (0.012MB)
Added: 2007-07-17 License: GPL (GNU General Public License) Price:
829 downloads
Array::Unique 0.07

Array::Unique 0.07


Array::Unique is a tie-able array that allows only unique values. more>>
Array::Unique is a tie-able array that allows only unique values.

SYNOPSIS

use Array::Unique;
tie @a, Array::Unique;

Now use @a as a regular array.

This package lets you create an array which will allow only one occurrence of any value.

In other words no matter how many times you put in 42 it will keep only the first occurrence and the rest will be dropped.

You use the module via tie and once you tied your array to this module it will behave correctly.

Uniqueness is checked with the eq operator so among other things it is case sensitive.

As a side effect the module does not allow undef as a value in the array.

EXAMPLES

use Array::Unique;
tie @a, Array::Unique;

@a = qw(a b c a d e f);
push @a, qw(x b z);
print "@an"; # a b c d e f x z

When you are collecting a list of items and you want to make sure there is only one occurrence of each item, you have several option:

1) using an array and extracting the unique elements later. You might use a regular array to hold this unique set of values and either remove duplicates on each update by that keeping the array always unique or remove duplicates just before you want to use the uniqueness feature of the array. In either case you might run a function you call @a = unique_value(@a);

The problem with this approach is that you have to implement the unique_value function (see later) AND you have to make sure you dont forget to call it. I would say dont rely on remembering this.

There is good discussion about it in the 1st edition of the Perl Cookbook of OReilly. I have copied the solutions here, you can see further discussion in the book.

----------------------------------------
Extracting Unique Elements from a List (Section 4.6 in the Perl Cookbook 1st ed.)

# Straightforward

%seen = ();
@uniq = ();
foreach $item (@list) [
unless ($seen{$item}) {
# if we get here we have not seen it before
$seen{$item} = 1;
push (@uniq, $item);
}
}

# Faster
%seen = ();
foreach $item (@list) {
push(@uniq, $item) unless $seen{$item}++;
}

# Faster but different
%seen;
foreach $item (@list) {
$seen{$item}++;
}
@uniq = keys %seen;

# Faster and even more different
%seen;
@uniq = grep {! $seen{$_}++} @list;

----------------------------------------
2) using a hash
Some people use the keys of a hash to keep the items and
put an arbitrary value as the values of the hash:

To build such a list:
%unique = map { $_ => 1 } qw( one two one two three four! );

To print it:
print join ", ", sort keys %unique;

To add values to it:
$unique{$_}=1 foreach qw( one after the nine oh nine );

To remove values:
delete @unique{ qw(oh nine) };

To check if a value is there:
$unique{ $value }; # which is why I like to use "1" as my value

(thanks to Gaal Yahas for the above examples)

There are three drawbacks I see:

1) You type more.
2) Your reader might not understand at first why did you use hash and what will be the values.
3) You lose the order.

Usually non of them is critical but when I saw this the 10th time in a code I had to understand with 0 documentation I got frustrated.

3) using Array::Unique

So I decided to write this module because I got frustrated by my lack of understanding whats going on in that code I mentioned. In addition I thought it might be interesting to write this and then benchmark it. Additionally it is nice to have your name displayed in bright lights all over CPAN ... or at least in a module.

Array::Unique lets you tie an aray to hmmm, itself (?) and makes sure the values of the array are always unique.

Since writing this I am not sure if I really recommend its usage. I would say stick with the hash version and document that the variable is aggregating a unique list of values.

4) Using real SET

There are modules on CPAN that let you create and maintain SETs. I have not checked any of those but I guess they just as much of an overkill for this functionality as Unique::Array.

<<less
Download (0.008MB)
Added: 2007-07-17 License: Perl Artistic License Price:
830 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5