use v5.12; use warnings; # https://perlmonks.org/?node_id=11141581 my $in = "anXwxdXdzd"; my $pi = "1415926535"; my @in = split //, $in; my @pi = split //, $pi; my $re = join "", map {$in[$_] eq "X" ? $pi[$_] : '.' } 0..9; $re = "/bin/grep $re /path/to/some/file"; say $re;