[Dicas-L] Inclua codigos-fonte de outras linguagens dentro do seu script Perl
Inclua códigos-fonte de outras linguagens dentro do seu script Perl
Colaboração: Otávio Fernandes
Data de Publicação: 29 de janeiro de 2008
O Inline é um módulo que permite que você acrescente código de outras linguagens de programação diretamente no seu script Perl, salvando-o de ter que escrever dois programas e fazê-los "conversar", gastando muito mais tempo do que se você pudesse simplesmente misturar as linguagens ... mas com a flexibilidade do Perl e a ajuda do Inline você pode. Nas linhas abaixo estarei demonstrando de forma descontraída e objetiva como isso é possível.
Pronto. Observe os retornos e se necessário, trate os erros que aparecerão no meio do caminho. Não entenderei mais esta parte pois este não é o nosso foco.
Em um determinado momento da nossa vida de programadores, seja profissionalmente ou apenas por diversão, fez-se necessário a execução de algum(s) método(s) de uma biblioteca natural de outra linguagem, o que para alguns casos, é aparentemente inviável, mas com a flexibilidade do Perl, e as inovações dos módulos presente na CPAN isso é mais do que possível, é fácil e muito prático. Nos exemplos abaixo, estaremos chamando métodos da nossa "libteste", a qual está presente no diretório "/usr/lib" e tem seus headers no diretório "/usr/include", o teste.h, para dificultar as coisas, quando instânciamos a libteste, precisamos ter no nosso fonte declarado uma estrutura, a qual servirá para troca de dados, o nome dela é treetst (bem sugestivo :-P):
Escrevendo um trecho de código C que faça a chamada da função, e retorne seu conteúdo para o nosso script:
17| #include <teste.h>
Junção deste código à trecho pré existente de código C, preparado para o enxerto de novas linhas de código. Atente que o código tem todos os requisitos para compilar a executar a libteste, ou seja, a presença do "include" de seu header "teste.h" e também apresenta da estrutura "treetst", necessária para troca de dados (não tratados aqui);
Imprimindo o retorno da função "Teste()". Lembrando que o retorno, ou parâmetros, ou até estruturas de dados podem trocados entre o script e o código C (outras linguagens também).