sub makeiglob { return join "", map "[\U$_\L$_]", split //, $_[0]; } sub makeiglob2 { $out=""; foreach (split //, $_[0]) { if (m/[^A-Za-z]/) { $out .= $_; } else { $out .= "[" . uc($_) . lc($_) . "]"; } } } print glob(makeiglob(shift));