Nic LAWRENCE
Thu, 10 May 2001 14:29:58 -0700
Oooo... I like that... more or less the same as Peter suggested but a little more self contained ... gonna have to remember that kinda structure. thnx i'll try it out :) > -----Original Message----- > From: Paul [mailto:[EMAIL PROTECTED]] > Sent: 10 May 2001 10:41 > To: Nic LAWRENCE; 'Beginner Perl' > Subject: Re: Sorting > > > > --- Nic LAWRENCE <[EMAIL PROTECTED]> wrote: > > Can anybody suggest the most efficient method to do the following... > > > > I have an array of email aliases like the following: > > [EMAIL PROTECTED]: sys > > [EMAIL PROTECTED]: coookiecom > > [EMAIL PROTECTED]: niccicamcom > > [EMAIL PROTECTED]: katyland-news_site14-request > > [EMAIL PROTECTED]: majordomo_site4 > > [EMAIL PROTECTED]: melanier > > [EMAIL PROTECTED]: louisefolds > > [EMAIL PROTECTED]: swccom > > > > ... and I want to sort them in alpha order, but basic on the value > > between @ and : (ie the domain name in the first column). I could > > problably do this if I throught about it a while, but the code would > > be REALLY messy, so I'm interested to know what the "correct" way to > > go about it might be. :) > > lol... Assuming they are in @ary, try this: > > @new = sort { > my($A) = $a =~ /\@([^:]+)/; > my($B) = $b =~ /\@([^:]+)/; > return $A cmp $B; > } @ary; > > sort aliases each element to $a and $b when comparing; the pattern > grabs all consecutive non-colons following the first at sign. > Assignment in the list context prvided by the parens around $A and $B > means that the actual pattern matched is returned. cmp does a string > compare, returning the greater-equal-lessThan zero comparison sort > expects. =o) > > ===== > print "Just another Perl Hacker\n"; # edited for readability =o) > ============================================================= > Real friends are those whom, when you inconvenience them, are > bothered less by it than you are. -- me. =o) > ============================================================= > "There are trivial truths and there are great Truths. > The opposite of a trival truth is obviously false. > The opposite of a great Truth is also true." -- Neils Bohr > > __________________________________________________ > Do You Yahoo!? > Yahoo! Auctions - buy the things you want at great prices > http://auctions.yahoo.com/ >