Perl Brasil

Pesquisar

Documentação

Artigos

Planeta

Eventos

Comunidade

r2 - 09 Mar 2006 - IgorSutton


NOME

File::Spec::Unix - Especialização do módulo File::Spec para sistemas Unix, base para outros módulos do pacote File::Spec

voltar para o topo


SINOPSE

 require File::Spec::Unix; # É executado automaticamente por File::Spec

voltar para o topo


DESCRIÇÃO

Oferece métodos para manipulação de especificações de arquivos. Outros módulos do pacote File::Spec, como File::Spec::Mac, extendem o módulo File::Spec::Unix e sobrescrevem métodos específicos.

voltar para o topo


MÉTODOS

canonpath()
Não faz nenhuma verificação física no sistema de arquivos, porém executa uma limpeza lógica em um caminho de arquivos. Sucessivos caracteres / e /. são eliminados no UNIX.
    $caminho_canonico = File::Spec->canonpath( $caminho ) ;

catdir()
Concatena dois ou mais nomes de diretórios para formar um caminho de diretório completo. Este método remove a / do final, pois não é bonito, não é necessário e confunde o OS2. Claro que se este for o diretório raíz, a / não é removida smile

catfile
Concatena um ou mais nomes de diretórios e um nome de arquivo para formar um caminho de arquivo completo.

curdir
Devolve uma representação de uma string contendo o diretório atual, . no UNIX.

devnull
Devolve uma representação de uma string contendo o dispositivo nulo, /dev/null no UNIX.

rootdir
Devolve a representação de uma string contendo o diretório raíz, / no UNIX.

tmpdir
Devolve a representação de uma string contendo o nome do primeiro diretório com permissão de escrita da lista abaixo ou o diretório atual caso nenhum dos diretórios da lista tenha permissão de escrita:
    $ENV{TMPDIR}
    /tmp
Desde a versão 5.8.0 do Perl, se você estiver executando utilizando o modo taint, e $ENV{TMPDIR} esteja marcado (tainted), ele não é utilizado.

updir
Devolve uma representação de uma string contendo o diretório pai, .. no UNIX.

no_upwards
Dada uma lista de nomes de arquivos, remove aqueles que se referem ao diretório pai. (Não remove links simbólicos, apenas ., .. e equivalentes.)

case_tolerant
Devolve um valor verdadeiro ou falso indicando se, respectivamente, a caixa das especificações de nome de arquivo e diretórios são ou não são significantes na comparação destas especificações.

file_name_is_absolute
Recebe como argumento um caminho e devolve verdadeiro caso este seja um caminho absoluto.
Esta função não consulta o sistema de arquivos local no UNIX, Win32, OS/2 ou Mac OS (Clássico). Ela consulta o ambiente na plataforma VMS (veja file_name_is_absolut in the File::Spec::VMS manpage).

path
Não recebe nenhum argumento, e retorna a variável de ambiente PATH como um array.

join
A função join é idêntica à catfile.

splitpath
  ($volume, $diretorio, $arquivo) = File::Spec->splitpath($caminho);
  ($volume, $diretorio, $arquivo) = File::Spec->splitpath($caminho, $sem_arquivo);
Separa um caminho em porções de volume, diretório e nome de arquivo. Em sistemas sem conceito de volume, devolve uma variável scalar vazia ('') na porção do volume.
Para arquivos sem diferenciação sintática entre nomes de arquivos e diretórios, assume que o último arquivo do $caminho é um caminho a menos que $sem_arquivo seja verdadeiro ou um separador de diretórios ou /. ou /.. esteja presente no final do caminho. No UNIX isto significa que caso a variável $sem_arquivo for verdadeira, esta função devolverá ('', $path, '').
A porção do diretório poderá, ou não, ser devolvida com um / no final.
Os resultados podem ser passados para catpath() para recuperar um caminho equivalente (geralmente idêntico) ao caminho original.

splitdir
O oposto de catdir().)>.
    @diretorios = File::Spec->splitdir( $diretorios );
A variável $diretorios deve ser a porção do diretório do caminho em sistemas que possuem conceito de volume ou tenham uma sintaxe de caminhos que diferencie arquivos de diretórios.
Diferente de apenas dividir os diretórios no separador, nomes de diretório vazio ('') podem ser devolvidos, porque este valor é significante em alguns sistemas operacionais.
No UNIX,
    File::Spec->splitdir( "/a/b//c/" );
Devolve:
    ( '', 'a', 'b', '', 'c', '' )

catpath()
Recebe como parâmetros um volume, um diretório e um arquivo e devolvem um caminho completo. No UNIX, o parâmetro volume é ignorado, e o diretório e arquivo são concatenados. Uma barra pode ser inserida caso seja necessário (apesar de que se o diretório informado não começar com uma barra, ela não será adicionado). Em outros sistemas operacionais, o volume é significante.

abs2rel
Recebe um caminho destino e um caminho base opcional, e devolve o caminho relativo a partir do caminho base até o diretório destino:
  $caminho_relativo = File::Spec->abs2rel($caminho);
  $caminho_relativo = File::Spec->abs2rel($caminho, $caminho_base);
Caso $caminho_base não esteja presente ou esteja vazio (''), então cwd() é utilizado. Caso o $caminho_base seja relativo, ele é convertido para um caminho absoluto utilizando rel2abs(). Isto significa que ele é obtido relativo a cwd().
Em sistemas que possuem uma gramática que identifica nomes de arquivos, a função ignora $caminho_base caso este represente um nome de arquivo. Caso contrário, todos os caminhos são tratados como diretórios.
Caso $caminho seja um caminho relativo, ele é convertido para um caminho absoluto utilizando rel2abs(). Isto significa que ele é obtido relativo à cwd().
Nenhuma verificação no sistema de arquivos é feita. No VMS, há uma interação com o ambiente de trabalho. (N.T.: Não achei uma tradução que eu compreendesse, já que não conheço VMS: On VMS, there is interaction with the working environment, as logicals and macros are expanded.)
Este código foi baseado no código escrito por Shigio Yamaguchi.

rel2abs()
Converte um caminho relativo em um caminho absoluto.
  $caminho_absoluto = File::Spec->rel2abs( $caminho ) ;
  $caminho_absoluto = File::Spec->rel2abs( $caminho, $caminho_base ) ;
Se $caminho_base não esteja presente ou esteja vazia (''), então cwd() é usado. Caso $caminho_base seja relativo, então ele é convertido em um caminho absoluto utilizando rel2abs(). Isto significa que ele é obtido relativo à cwd().
Em sistemas que possuem uma gramática que identifica nomes de arquivos, a função ignora $caminho_base caso este represente um nome de arquivo. Caso contrário, todos os caminhos são tratados como diretórios.
Se $caminho é um caminho absoluto, ele é limpo e devolvido utilizando canonpath().
Nenhuma verificação no sistema de arquivos é feita. No VMS, há uma interação com o ambiente de trabalho. (N.T.: Não achei uma tradução que eu compreendesse, já que não conheço VMS: On VMS, there is interaction with the working environment, as logicals and macros are expanded.)
Este código foi baseado no código escrito por Shigio Yamaguchi.

voltar para o topo


COPYRIGHT

Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

voltar para o topo


VEJA TAMBÉM

the File::Spec manpage

voltar para o topo


TRADUÇÃO

Igor Sutton <igor@izut.com>

voltar para o topo