Teste se algo existe em determinado caminho usando o -e
operador de teste de arquivo.
print "$base_path exists!\n" if -e $base_path;
No entanto, este teste é provavelmente mais amplo do que você pretende. O código acima irá gerar saída se um arquivo simples existir nesse caminho, mas também irá disparar para um diretório, um pipe nomeado, um link simbólico ou uma possibilidade mais exótica. Consulte a documentação para obter detalhes.
Dada a extensão de .TGZ
em sua pergunta, parece que você espera um arquivo simples em vez de alternativas. O -f
operador de teste de arquivo pergunta se um caminho leva a um arquivo simples.
print "$base_path is a plain file!\n" if -f $base_path;
A documentação do perlfunc cobre a longa lista de operadores de teste de arquivo do Perl que cobre muitas situações que você encontrará na prática.
-r
O arquivo pode ser lido por uid / gid efetivo.
-w
O arquivo é gravável pelo uid / gid efetivo.
-x
O arquivo é executável pelo uid / gid efetivo.
-o
O arquivo pertence ao uid efetivo.
-R
O arquivo pode ser lido por uid / gid real.
-W
O arquivo pode ser escrito por uid / gid real.
-X
O arquivo é executável por uid / gid real.
-O
O arquivo é propriedade de uid real.
-e
O arquivo existe.
-z
O arquivo tem tamanho zero (está vazio).
-s
O arquivo tem tamanho diferente de zero (retorna o tamanho em bytes).
-f
O arquivo é um arquivo simples.
-d
O arquivo é um diretório.
-l
O arquivo é um link simbólico (falso se os links simbólicos não forem suportados pelo sistema de arquivos).
-p
Arquivo é um canal nomeado (FIFO) ou Filehandle é um canal.
-S
O arquivo é um soquete.
-b
O arquivo é um arquivo especial de bloco.
-c
Arquivo é um arquivo especial de caracteres.
-t
Filehandle é aberto para um tty.
-u
O arquivo foi definido com o bit setuid.
-g
O arquivo foi definido com o bit setgid.
-k
O arquivo tem o bit sticky definido.
-T
Arquivo é um arquivo de texto ASCII ou UTF-8 (estimativa heurística).
-B
O arquivo é um arquivo “binário” (oposto de -T
).
-M
Hora de início do script menos a hora de modificação do arquivo, em dias.
-A
O mesmo para o tempo de acesso.
-C
O mesmo para o tempo de mudança de inode (Unix, pode ser diferente para outras plataformas)