[Rio-pm] problema em match de arquivos

breno em clavis.com.br breno em clavis.com.br
Segunda Junho 12 20:51:03 PDT 2006


Salve pessoal,

estou com o seguinte problema: tenho uma lista de arquivos a serem lidos (expandidos via
glob() e outra lista de arquivos a serem ignorados. Mas devo estar comendo mosca em
algum lugar pois não sei pq não está funcionando.

O código abaixo reproduz o problema (obs: o código é PARA WINDOWS, isso é importante
frisar por causa das barras e do exemplo em si):

esse código lê dois arquivos: "ignorado.txt" contendo apenas a linha:

\pagefile.sys

e "diretorio.txt", contendo apenas a linha:

\*

esse é o código que reproduz o problema:

--------------------8<----------------------
open(ARQ, '<', 'ignorado.txt') or die "$!\n";
chomp(my $ignorado = <ARQ>); # aqui eu leio '\pagefile.sys'
close(ARQ);

open(ARQ, '<', 'diretorio.txt') or die "$!\n";
chomp(my $dir = <ARQ>);  # aqui eu leio '\*'
close(ARQ);
my @lista_expandida = glob($dir);

foreach(@lista_expandida) {
    print "comparando \"$_\" com \"$ignorado\"...\n";
    if($_ =~ /^$ignorado/) {
        print "*** ignorei $_ ***";
    }
}
--------------------8<----------------------

note que coloquei dois print() dentro do foreach() para depurar, e ele simplesmente não
entra dentro do if()... recebo até a saída:

comparando "\pagefile.sys" com "\pagefile.sys"...

alguém tem idéia do que pode estar acontecendo????

o problema acredito que esteja relacionado com a barra invertida, mas não sei como
solucioná-lo e não posso retirar a barra...

curiosamente, se tiro o "^" do match dentro do if(), logo que ele compara
"\pagefile.sys" com "\pagefile.sys" (onde deveria entrar, ele morre com o erro:

Can't find Unicode property definition "a"


Qualquer ajuda ou indicação será *muito* bem vinda, especialmente dos monges que usam
Windows (não é muito a minha praia ;-)

à título de curiosidade, caso possa ajudar:
------------------
This is perl, v5.8.7 built for MSWin32-x86-multi-thread
(with 7 registered patches, see perl -V for more detail)
------------------

[]s

breno



Mais detalhes sobre a lista de discussão Rio-pm