Port perl script para Windows

1

Eu tenho um ótimo script perl que eu uso para descompactar / descompactar um tarball de um arquivo, e então correlacionar uma dúzia de arquivos para uma solução de problemas inteligente de um sistema NAS. Agora as pessoas querem ver uma versão para windows = /

Eu sou experiente em Linux, novato em Perl e não me sinto confortável com scripts para windows.

As dificuldades que vejo são: (1) instalar o local do perl (2) Eu confio na saída de grep e find (3) potenciais empecilhos entre versões - XP, Vista?, 7,2k3,2k8.

Sem sorte até agora com Cygwin ou versão do Windows de find . Eu tenho ActivePerl instalado no Windows 7.

Pensamentos?

    
por mbb 28.03.2011 / 17:30

5 respostas

2

As funções Grep (ou grep-like) podem ser alcançadas usando

Você pode usar find , por nota do RedGrittyBrick acima (err, abaixo? Ele continua se movendo).

Recentemente, carreguei um script Perl do Windows Vista para o XP, e isso não é grande coisa. Os únicos problemas que enfrentei foram o uso das chamadas 'exec' ou 'sistema' em Perl para acionar a operação dos programas do MS Office. A menos que você esteja fazendo algo assim, provavelmente não verá dificuldade em se movimentar entre os sistemas operacionais Windows.

Incidentalmente, eu não estava ciente, no meu uso do ActiveState Perl, da função PPM que permite que você pegue bibliotecas de código aberto para funções especiais. Certifique-se e tente isso para evitar a reinvenção da roda.

    
por 28.03.2011 / 21:47
2
  1. Instale o local do perl - isso não deve causar problemas.
  2. Substitua o uso do grep / find pelos módulos Perl. Por exemplo. Arquivo :: Localizar.
  3. Ainda não tive problemas com a versão do Windows. O que você tem em mente?
por 28.03.2011 / 21:09
2

O Cygwin tem find e grep .

Se find apresentar uma mensagem de erro estranha, significa que você está executando um comando find diferente.

Experimente editar seu PATH para colocar /bin e /usr/bin da Cygwin no início ou executar find usando um nome de caminho absoluto, por exemplo, /usr/bin/find em vez de find .

Mas, sim, outros estão certos. Você poderia substituir find com File::Find e o comando grep pela função grep do Perl ou por operadores de correspondência de expressões regulares. (por exemplo, $line =~ /pattern/ ).

O ActivePerl provavelmente está bom, mas Strawberry Perl parece estar se tornando a opção mais popular no Windows, então essa é outra opção se por algum motivo o ActivePerl não dá certo.

    
por 28.03.2011 / 22:07
1

O Cygwin é geralmente a solução mais fácil para esse tipo de problema. Quais problemas você teve com isso?

    
por 28.03.2011 / 21:14
0

Já tentou msys? Eu sou um usuário git, então eu quase considero tudo a partir do msysgit para fazer parte do meu sistema operacional agora.

msys - link

msysgit - link

    
por 29.03.2011 / 04:08