Frederico RecskyPublicado em 19/08/2006
r2 - 19 Aug 2006 - JoenioCosta
Neste artigo, vou mostrar como eu fiz e minhas sugestões para a introdução da linguagem no seu trabalho, tanto pra programadores, como para administradores que querem automatizar tarefas usando perl.
Atualmente, em grandes empresas, diretrizes de uso de computadores e seus softwares são determinados pelo departamento de TI, e normalmente a introdução de novos programas e ferramentas de desenvolvimento são muito complexas ou envolvem muita burocracia. Durante o texto, vou mostrar maneiras de introduzir a perl sem assustar seus superiores imediatos e ainda deixa-los felizes.
Essa é uma verdade universal, raros casos são empresas onde os gerentes e supervisores tem a mente aberta para softwares. A natureza dinamica do software assusta o alto escalão de empresas cujo a formação é de maneira classica e ortodoxa. Nessa filosofia, os meritos tecnicos da linguagem não irão convencer ninguem a adota-la. Falar como eles é importante, e linguagem da admnistrativo é custo, retorno e vantagens competitivas. Mas existe uma coisa ainda mais poderosa que essas sugestões, que é o "simplesmente funciona".
MInha experiencia pessoal diz que ao se iniciar um dialogo, "pedindo" para se utilizar uma ferramenta pode ser um erro, a menos que você precise instalar a perl no computador e não tenha meios. Gerentes e Diretores são regidos para dar valor a solução dos problemas e não muito como foi feito, a maioria é assim. Então a melhor alternativa para mostrar a Perl para eles é resolver um problema inicial utilizando a perl. Simplesmente faça e mostre funcionando e diga que usou a perl. E que foi rápido. Isso funcionou comigo, pois aticei a curiosidade de todos do meu setor quando resolvia pequenos problemas utilizando um laço e um pequeno filtro com regex e gerando a saída na tela. Assim foi com um pequeno programa para diferenciar dois arquivos ".ini" do windows.
O Problema:
tínhamos vários arquivos ".ini" e precisavamos compara-los, mas as tags eram totalmente desordenadas, assim dois arquivos são diferentes, mas o conteúdo logico é o mesmo, pois as seções estão desorganizadas.
Por exemplo:
conteúdo do arquivo 1
980c552b154bc7844e9489ebf912bbb4
bbb
ccc
conteúdo do arquivo 2
bbb
ccc
980c552b154bc7844e9489ebf912bbb4
Para nós, os arquivos são iguais, mas todos os diffs testados apontam como sendo diferentes. Pois o conteúdo interno das seções também não é ordenado, pois são gerados por processos automaticos.
Então eu recebi a ordem para fazer o programa, em C, C++ ou java, padrões da empresa. Resolvi usar a linguagem Perl, pois seria relativamene simples de implementar usando poucas linhas.
O algoritmo inicial consistia em:
ler do arquivo, usando as funções open, e em um laço while com operador diamante, eu criava um vetor com todas as tags entre colchetes. e as ordenava com sort. Comparava se os dois vetores tinham o mesmo tamanho, e caso afirmativo comparava cada tag, com seu correspondente. Lia os valores internos das tags em outros dois vetores, ordenava efazia a mesma comparação.
colar o código comentado
nota, na epoca não usava hash, nem referencias, coisa que tornaria a tarefa muito mais simples. reescrever o programa comentar com relação a primeira versão.
expandir o texto abaixo com mais detalhes
O detalhe, eu fiz em um dia, e o programa rodou em linux, aix, e windows nt sem adaptação nenhuma, visto nossa dificuldade com o java e o aix. Mostrei ao meu gerente, que torceu o nariz, mas quando viu o resultado perdeu a defensiva em relação a linguagem.
...
----
Frederico Recsky