Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: searching for strings

by injunjoel (Priest)
on Aug 07, 2007 at 19:35 UTC ( [id://631123]=note: print w/replies, xml ) Need Help??


in reply to searching for strings

Late as usual I see...
Here is my suggestion
#!/usr/bin/perl use strict; { local %_; while(<DATA>){ chomp; if(/(\d+|[A-Z])$/){ $_{substr($_,0,(length($_)-length($1)))}->{$1} = $_; } } for(sort keys %_){ if(scalar(keys %{$_{$_}}) % 2 == 0){ local @_ = sort{$a <=> $b || ord($a) <=> ord($b)}keys %{$_ +{$_}}; for(my $i = 0; $i < scalar(@_); $i+=2){ if( ($_[$i] =~ /\d$/ && abs($_[$i] - $_[$i+1]) == 1) | +| (abs(ord($_[$i]) - ord($_[$i+1])) == 1) ){ print $_{$_}->{$_[$i]}.";".$_{$_}->{$_[$i+1]}."\n" + ; print $_{$_}->{$_[$i+1]}.";".$_{$_}->{$_[$i]}."\n" + ; } } } } } __DATA__ AAA30 BBC5 SHT12H DAL33B BBC49 AAA31 BBC8 BBC3 DAL33A BBC6 SHT12G BBC50
Output
AAA30;AAA31 AAA31;AAA30 BBC49;BBC50 BBC50;BBC49 DAL33A;DAL33B DAL33B;DAL33A SHT12G;SHT12H SHT12H;SHT12G
Not exactly the OP's output but close...
Just a thought :)

-InjunJoel
"I do not feel obliged to believe that the same God who endowed us with sense, reason and intellect has intended us to forego their use." -Galileo

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2024-04-19 05:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found