Hm. See BUU for a simpler way to do it, but this seemed mildly interesting to me. This WTDI will produce a glob pattern that will match only the wanted files. (I'm currently on windows, so this will only ever give at most one filename, since the OS enforces case-insensitivity. This is, therefore, partaly tested.) Note that this won't work with real paths, only filenames, since the path seperator gets messed with. Makeiglob2 should get around this, but won't case-map things that aren't A-Za-z. A mix between them is possible that will work for both: change the m/^A-Za-z/ in makeiglob2 to m/<os-specifc path metachars>/. (os-specifc path metachars would be \ and : on win32, / on unix-likes, : on macos?) Most of the differences between these two, though, are in though-model. makeiglob is how I think. makeiglob2 is designed to be easy to follow for those newer to perl. Lists are happy things.

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));


Confession: It does an Immortal Body good.


In reply to Re: Case insensitive file testing by theorbtwo
in thread Case insensitive file testing by cheesyjames

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.