Hi,

I have a script, which suppose to find all *.xml files under the specified 
directory then process them.
I'm facing the pattern match problem:

use strict;
use warnings;
use Win32;
use File::Find;

@ARGV = Win32::GetCwd() unless @ARGV;


my @dirs;

find (\&FindXml, $ARGV[0]);

sub FindXml 
{
    return if !stat || -d;
    ( my $xml_file = $File::Find::name ) =~ /^.+\.xml$/;
    push ( @dirs, $xml_file );
}

In this examples the pattern match /^.+\.xml$/ is not working and all files 
regardless of the extension have been assigned to $xml_file variable.

#################

However, if I change parenthesis to count the matching, the pattern seems to 
work.

sub FindXml 
{
    return if !stat || -d;
    my $xml_file = ( $File::Find::name  =~ /^.+\.xml$/ );
    print $xml_file;
}

I'll be really grateful for any help here.

Thanks in advance,
Vladimir



Reply via email to