in reply to How can one join the shortest and longest strings of different text files?

G'day supriyoch_2008,

Here's a technique that involves using the lengths of the original strings as hash keys.

$ perl -Mstrict -Mwarnings -E ' use autodie qw{:all}; my $ext = ".txt"; my @nums = 1 .. 3; my %result; for (@nums) { open my $fh, "<", $_ . $ext; while (<$fh>) { chomp; y/,//d; next unless length; $result{+length} .= $_; } close $fh; } my @sorted_keys = sort { $a <=> $b } keys %result; say "*** Input Data Strings ***"; say "Shortest: ", $sorted_keys[0]; say "Longest: ", $sorted_keys[-1]; say "*** Output Data Strings ***"; say $result{$_} for @sorted_keys; say "*** Two Shortest ***"; say $result{$_} for @sorted_keys[0, 1]; say "*** Two Longest ***"; say $result{$_} for @sorted_keys[-2, -1]; ' *** Input Data Strings *** Shortest: 1 Longest: 5 *** Output Data Strings *** ATG AATTGG AAATTTGGG AAAATTTTGGGG AAAAATTTTTGGGGG *** Two Shortest *** ATG AATTGG *** Two Longest *** AAAATTTTGGGG AAAAATTTTTGGGGG

I'm not sure how much of your other output was actually required or just for debugging; regardless, you should be able to add code for that quite easily.

-- Ken

  • Comment on Re: How can one join the shortest and longest strings of different text files?
  • Download Code