On Jul 1, [EMAIL PROTECTED] said: >\.[^(gz|html)]$ > >this regex should match all files (lines) NOT ending with gz or html.
No, it shouldn't. It should match all files ending with a . followed by a character that is not any of ()|^ghlmtz, followed by the end of the string. >but this is not working. the lines ending with .gz are still found. >whats wrong with that? The problem is that [...] is a CHARACTER class. You cannot put a STRING in a character class. What you want to do is either change the sense of your regex entirely: if ($filename !~ /\.(gz|html)$/) { # the !~ operator means "does not match" } or else use a negative look-ahead: if ($filename =~ /\.(?!gz|html)[^.]*$/) { # (?!...) means "is not followed by" } I think the first one is easier to understand at this stage. -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course. [ I'm looking for programming work. If you like my work, let me know. ] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]