So far, your comments have been the most helpful for me understand:

where do you really want to die? :-)

Good catch! I should have caught this. I will rectify this asap.

Aside from this, I've always interpreted "base filename" and "extention" to be 2 particular and discrete things, so if you do have a file named foo.bar.baz.quux, you've got a base filename of "foo.bar.baz" and an extention of "quux";

My desire was to actually remove the extension from the filename base. I agree with you on the two distinct entities. I need to go back through my comments because I am not sure why you are making this statement. I must have said something somewhere that wasn't too clear :)

do you have a particular need or use to split on every dot, or were you being (lowercase) lazy?

Well, I was only solving this the way I thought it in my mind would be best to solve it. I wasn't trying to win a Nobel Peace Prize or anything =P. Perhaps I should have placed this snippet of code some place else on PM?

in any case, it really seems like you're doing too much work here

I admit, I am doing more work than you are doing :). Nice example. It never occurred to me to use reverse(). :(

Additionally, I would not use any module that required me to declare a DEBUG variable (or constant, in this case) in my own package, but perhaps this could be addressed if you make your File::Basename::foo package. File::Basename::foo::DEBUG would be ok with me.

If I did make a package out of this I wouldn't include the DEBUG stuff. At least not as a requirement. This is a snippet of code I was using in a script of mine that I actually though was a good piece of code (heh, I guess I was wrong). This snippet was written to work in my already existing script, therefore, there was superfluous stuff in it already that I did not take out. I was merely suggesting to anyone who wanted to use the snippet would either need to edit it slightly or use it as-is and simply create a global variable called DEBUG.

If I wrote this as a module, I would get rid of the DEBUG necessity altogether and simply do as you suggested with the File::Basename::foo::DEBUG idea.

_ _ _ _ _ _ _ _ _ _
- Jim
Insert clever comment here...


In reply to Re: Re: Parse out the extension of a filename - return base of filename. (boo) by snafu
in thread Parse out the extension of a filename - return base of filename. by snafu

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.