On Tuesday, Mar 18, 2003, at 15:46 US/Pacific, Peter Kappus wrote:


I also had no problem...

"myfile.jpeg" =~ /(.*?)\.(.*)/;
print $2;

gives me "jpeg"

Can we see the rest of your code?
I think the problem may be in the value of $file_completename...
[..]

I think the OP may have a problem with what is really
in that $file_completename that was not planned for.

To test this I put together:

        sub split_me {
                my ($file_completename, $extension) = @_;
                
                $file_completename =~ /(.*?)\.([^\.]*)$/;
                if ($2 && $2 eq $extension )
                {
                        print "we match $extension for $file_completename\n";
                }
                else
                {
                        print "FAIL to match $extension for $file_completename";
                        print " - " . $2 if ( $2 ) ;
                        print "\n";
                
                }
        } # end of split_me
        
        split_me("bob.txt" , "txt");
        split_me("bob.html" , "txt");
        split_me("bob.txt.html" , "txt");
        split_me("bob.txt.html.txt" , "txt");
        split_me("/some/path.here/bob.txt" , "txt");

the first two cases work as expected and the next three
will help show a part of the problem

        we match txt for bob.txt
        FAIL to match txt for bob.html - html
        FAIL to match txt for bob.txt.html - txt.html
        FAIL to match txt for bob.txt.html.txt - txt.html.txt
        FAIL to match txt for /some/path.here/bob.txt - here/bob.txt

if one changes the RegEx to say

$file_completename =~ /(.*?)\.([^\.]*)$/;

then the output looks like:

        we match txt for bob.txt
        FAIL to match txt for bob.html - html
        FAIL to match txt for bob.txt.html - html
        we match txt for bob.txt.html.txt
        we match txt for /some/path.here/bob.txt

the regex looks at ONLY the last stuff after a '.'

note also that if we had

split_me("bob" , "txt");

that this would fail, and without the test to see
that $2 existed we would get a warning about attempting
to compare it to $extension.

HTH.

ciao
drieux

---


-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to