#!/usr/bin/perl -w use strict; use warnings; my ($Pattern, $c1, $c2) = ''; while( ) { /./ or next; chomp; for (my $i = 0; $i < length($_); $i++) { ($c1 = vec($_, $i, 8)) > 32 or next; $c2 = vec($Pattern, $i, 8); $c2 = ($c2 < 33) ? $c1 : $c2; vec($Pattern, $i, 8) = ($c1 == $c2) ? $c1 : 42; } print "\n INPUT = |$_|\nPattern = |$Pattern|\n"; } print "\n\nFINAL RESULT:\n\n $Pattern\n"; __DATA__ /b/c/ a/b/cdx0/m2/b4/r_a_c1_4/w a/b/c/p0/m0/b0/r_a_c1_0/q a/b/c/p0/m0/b0/r_a_c1_1/q a/b/c/p0/m0/b0/r_a_c1_2/q a/b/c/p0/m0/b1/r_a_c1_0/q a/b/c/p0/m0/b1/r_a_c1_1/q a/b/c/p0/m0/b1/r_a_c1_2/q a/b/c/p0/m0/b1/r_a_c1_0/q/g/w/t /q w/b/c/p0/m3/b2/r_a_c d/e0/m2/b