#!/usr/bin/env perl use strict; use warnings; use Inline::Files; use File::Glob qw{bsd_glob}; my @file_data = map { [ do { local $/; <$_> } =~ /(\w+)/gm ] } *K1_TXT, *K2_TXT, *K3_TXT; my $glob_string = join '' => map { '{' . join(',' => @$_) . '}' } @file_data; print "$_\n" for bsd_glob $glob_string; __K1_TXT__ A1T1 A2T3 __K2_TXT__ C1G1 C1G2 C2G1 __K3_TXT__ A1C1