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

# Sort::Versions 1.5

Date Added: March 23, 2010  |  Visits: 720

Sort::Versions is a Perl 5 module for sorting of revision-like numbers. SYNOPSIS use Sort::Versions; @l = sort { versioncmp(\$a, \$b) } qw( 1.2 1.2.0 1.2a.0 1.2.a 1.a 02.a ); ... use Sort::Versions; print lower if versioncmp(1.2, 1.2a) == -1; ... use Sort::Versions; %h = (1 => d, 2 => c, 3 => b, 4 => a); @h = sort { versioncmp(\$h{\$a}, \$h{\$b}) } keys %h; Sort::Versions allows easy sorting of mixed non-numeric and numeric strings, like the version numbers that many shared library systems and revision control packages use. This is quite useful if you are trying to deal with shared libraries. It can also be applied to applications that intersperse variable-width numeric fields within text. Other applications can undoubtedly be found. For an explanation of the algorithm, its simplest to look at these examples: 1.1 < 1.2 1.1a < 1.2 1.1 < 1.1.1 1.1 < 1.1a 1.1.a < 1.1a 1 < a a < b 1 < 2 1.1-3 < 1.1-4 1.1-5 < 1.1.6 More precisely (but less comprehensibly), the two strings are treated as subunits delimited by periods or hyphens. Each subunit can contain any number of groups of digits or non-digits. If digit groups are being compared on both sides, a numeric comparison is used, otherwise a ASCII ordering is used. A group or subgroup with more units will win if all comparisons are equal. A period binds digit groups together more tightly than a hyphen. Some packages use a different style of version numbering: a simple real number written as a decimal. Sort::Versions has limited support for this style: when comparing two subunits which are both digit groups, if either subunit has a leading zero, then both are treated like digits after a decimal point. So for example: 0002 < 1 1.06 < 1.5 This wont always work, because there wont always be a leading zero in real-number style version numbers. There is no way for Sort::Versions to know which style was intended. But a lot of the time it will do the right thing. If you are making up version numbers, the style with (possibly) more than one dot is the style to use. USAGE The function versioncmp() takes two arguments and compares them like cmp. With perl 5.6 or later, you can also use this function directly in sorting: @l = sort versioncmp qw(1.1 1.2 1.0.3); The function versions() can be used directly as a sort function even on perl 5.005 and earlier, but its use is deprecated..

 Requirements: No special requirements Platforms: Linux Keyword: Libraries,  Perl,  Programming,  Sorting,  Sortversions,  Style Users rating: 0/10

 License: Freeware Size: 5.12 KB
USER REVIEWS
 More Reviews or Write Review
SORT::VERSIONS RELATED
 Network & Internet  -  mod_perl 2.0.3 mod_perl project brings together the full power of the Perl programming language and the Apache HTTP server. You can use Perl to manage Apache, respond to requests for web pages and much more. mod_perl gives you a persistent Perl interpreter... 3.5 MB Libraries  -  Socket::PassAccessRights 0.03 Socket::PassAccessRights is a Perl extension for BSD style file descriptor passing via Unix domain sockets. SYNOPSIS use Socket::PassAccessRights; Socket::PassAccessRights::sendfd(fileno(SOCKET), fileno(SEND_ME)) or die; \$fd =... 7.17 KB Utilities  -  Perl OS 4 Perl OS is a program written in the Perl programming language combined with the Perl module Tk. Perl OS was created to make an easy interface to run Perl/Tk programs. It was also created to be an easy working environment complete with a text... 143.36 KB Libraries  -  ExtUtils::ModuleMaker::PBP 0.09 ExtUtils::ModuleMaker::PBP is a Perl module to create a Perl extension in the style of Damian Conways Perl Best Practices. SYNOPSIS use ExtUtils::ModuleMaker::PBP; \$mod = ExtUtils::ModuleMaker::PBP->new( NAME => Sample::Module );... 34.82 KB Web Authoring  -  WebAPP 1.0 SE WebAPP is a popular, open source Content Management System (cms) written in the Perl programming language. The name WebAPP is an abbreviation of Web Automated Perl Portal. Available under the GNU General Public License, WebAPP is free software.... 2 KB Programming  -  Acme::BOPE 0.01 Created at the base of the hill of Babylon, New York, in full evening of funk, this module allows you to make inroads Perl programming using just jargon and language taken from the famous movie "Elite Squad" director Jose Padilha 10.24 KB Arcade Style Games  -  Davids Perl Games 0.1.1 Davids Perl Games project is a collection of ASCII graphics arcade style games written in Perl. These games are recreations of simple ASCII graphics games originally written in BASIC. They are ideal for use as Perl programming tutorials. Some... 64.51 KB Libraries  -  Class::ObjectTemplate 0.7 Class::ObjectTemplate is a Perl extension for an optimized template builder base class. SYNOPSIS package Foo; use Class::ObjectTemplate; require Exporter; @ISA = qw(Class::ObjectTemplate Exporter); attributes(one, two, three); #... 6.14 KB Libraries  -  Language::Logo 1.000 Language::Logo Perl module is an implementation of the Logo programming language. SYNOPSIS use Language::Logo; my \$lo = new Logo(update => 20); \$lo->command("setxy 250 256"); \$lo->command("color yellow"); \$lo->command("pendown"); #... 16.38 KB Libraries  -  XML::Generator::PerlData 0.89 XML::Generator::PerlData is a Perl extension for generating SAX2 events from nested Perl data structures. SYNOPSIS use XML::Generator::PerlData; use SomeSAX2HandlerOrFilter; ## Simple style ## # get a deeply nested Perl data structure...... 13.31 KB