Perl vem com um módulo File :: Find , que permite que um usuário procurar um arquivo . O File :: Find :: find função desce subdiretórios e visitas cada arquivo uma vez , passando-o para uma função que você fornece. Desde Perl é uma linguagem de programação multi-plataforma, a função pode ser usado em vários sistemas operacionais diferentes. Instruções
1
Importe o " File :: Find " módulo usando a palavra-chave "Use". Todas as distribuições Perl deve vir com o " File :: Find " do módulo, por isso não é necessário instalá-lo separadamente: "use File :: Find ; "
2
Escreva uma função de filtro desde que o "Arquivo :: Find :: find " função na verdade não faz qualquer filtragem . Criar uma função de filtragem que armazena arquivos em uma lista, os imprime , apaga -los , move-los ou faz qualquer outra coisa que você quer fazer com os arquivos. A função de filtro não tem argumentos , eo nome do arquivo atualmente visitada por File :: Find :: encontrar será na variável padrão $ _ . Neste exemplo, a função de filtro filtra arquivos com base em seu nome de arquivo e uma expressão regular : " sub filtro { if ($ _ = ~ /\\ html $ /i. ) {Print" $ _ \\ n "; }}" < br >
3
Chame o " File :: Find :: find " função , uma vez que a palavra-chave " Use " importados todas as funções de File :: Find no namespace global. A função " Localizar " recebe dois argumentos . A primeira é uma referência para a função de filtro , a sintaxe do que se parece um pouco estranho.
4
Criar uma referência para a função "Filter" , usando o código " \\ & filtro " . A barra invertida é o operador de referência , ou seja, ele vai fazer uma referência a partir de tudo o que é passado para ele . Normalmente omitido, o & é a função ou o prefixo sub-rotina, usado para denotar funções. Ela é usada apenas como $ é para escalares, @ para listas e "%" para hashes.
5
Use o segundo parâmetro para encontrar o diretório base para pesquisar . Isso deve ser tanto um caminho absoluto ou o diretório atual , denotado por um "." . " encontrar (\\ & filtro ,". " ); "
6
Passe uma sub-rotina anônimo em vez de uma referência de função . O "sub" palavra-chave faz uma sub-rotina anônima e retorna uma referência a ele , o que é útil para uma função como File :: Find :: descobrir se a função desejada é muito curto. Ele mantém todo o código em um lugar, para que o leitor do código não tem que procurar a função de filtro . Este exemplo só irá imprimir todos os arquivos encontrados, sem filtro regex : " encontrar (sub {print" $ _ \\ n " ;} ,". " ); "