Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: Perl's pearls

by kbrannen (Beadle)
on Jul 30, 2013 at 02:19 UTC ( #1046937=note: print w/replies, xml ) Need Help??

in reply to Perl's pearls

I was wanting something like this, so it was good to find. So how has 12 years changed things other than it still works?

Tech note D is of interest:

Creating the word signature with
   pack "C*", sort unpack "C*", $_
is faster than using
   join "", sort split //, $_;
With Perl 5.14.2, the join/sort/split version is actually faster now, only by a few hundredths of a second on my machine, but it is faster. This is on 917K words. It also generates a correct signature, while the pack version generates a bad signature. Changing the last line to foreach(sort(keys(%words))) { print "$_- $words{$_}\n"; } allows us to compare:
  • pack gives: deoab- abode adobe
  • split gives: abdeo- abode adobe
The pack version works because it orders letters in the same way, but it doesn't order them in alphabetical order like it's supposed to. I'm not sure if this is a result of changes to perl as it's advanced thru time, or if it was that way originally. I don't have a version of perl from back in 2001 to test anyway.

I found the key generation error because I actually want the key to be available and need the letters to be in alphabetical order for another program.

Thanks for sharing!

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1046937]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2021-10-20 16:48 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (81 votes). Check out past polls.