entao galera nesse tutorial vou ensinar como programar em python dentro da linguagem perl, para gente fazer isso vamos usar o modulo Inline::Python que deve ser baixado pelo cpan, a vantagem de usar python dentro do perl que nos permite usar varios modulos indiretamente da linguagem python, a forma mais simples de usar esse modulo seria importar o modulo no caso "Inline Python" depois finalizar o codigo perl com __END__ e depois usar __Python__ seguido do codigo em python
lembrando que a sintaxe da linguagem perl e python são diferentes vamos ver outro exemplo usando uma função e uma estrutura condicional em python que comprova que estamos mexendo com python
outra forma da gente escrever o codigo python é usando a função py_eval porem temos que declara o modulo de forma diferente dos exemplos anteriores sendo ele Inline::Python "py_eval"
depois podemos usar a função py_eval com o codigo python
quando o codigo tem mais de uma linha usamos o ponto e virgula representando a quebra de linha
ou simplesmente usamos outro py_eval
outra forma ainda é por trechos
é possivel executar codigo perl dentro do codigo python com o perl.eval
podemos executar uma função do perl dentro do python usando perl seguido da função
ou inversamente do python dentro do perl
um exemplo de um script que faz a requisição em um site para buscar o html usando modulo em python no caso o urllib2 e depois jogar o resultado em uma função em perl para recortar a hora por uma regex (OBS: no html do site ta escrito " <<< AVISO: NÃO USE ESTA HORA EM APLICATIVOS " kkkk vish acabei usando nesse script '-' )
bom galera esse é basico do que se pode fazer com esse modulo e com essa combinaçao de linguagens \o
by kodo no kami
Código:
#!/usr/bin/perl use Inline Python __END__ __Python__ print "isso aqui é python"
lembrando que a sintaxe da linguagem perl e python são diferentes vamos ver outro exemplo usando uma função e uma estrutura condicional em python que comprova que estamos mexendo com python
Código:
#!/usr/bin/perl use Inline Python __END__ __Python__ def kodo_nome(n): print "o nome digitado foi " + nome nome = raw_input("digite seu nome: ") kodo_nome(nome)
outra forma da gente escrever o codigo python é usando a função py_eval porem temos que declara o modulo de forma diferente dos exemplos anteriores sendo ele Inline::Python "py_eval"
Código:
#!/usr/bin/perl use Inline::Python "py_eval";
Código:
#!/usr/bin/perl use Inline::Python "py_eval"; py_eval('print "codado em python"');
quando o codigo tem mais de uma linha usamos o ponto e virgula representando a quebra de linha
Código:
#!/usr/bin/perl use Inline::Python "py_eval"; py_eval('print "codado em python";print "segunda linha"');
Código:
#!/usr/bin/perl use Inline::Python "py_eval"; py_eval('kodo = 315'); py_eval('print kodo');
Código:
#!/usr/bin/perl use Inline Python => <<"END" kodo="python dentro de perl" print kodo END ;
é possivel executar codigo perl dentro do codigo python com o perl.eval
Código:
#!/usr/bin/perl use Inline Python; __END__ __Python__ perl.eval("$nick = 'kodo no kami'") perl.eval("print 'apelido = ' . $nick")
podemos executar uma função do perl dentro do python usando perl seguido da função
Código:
#!/usr/bin/perl use Inline Python; sub kodosomar{ $resu = $_[0] + $_[1]; print $resu; } __END__ __Python__ perl.kodosomar(300,15)
Código:
#!/usr/bin/perl use Inline Python; kodosomar(300,15); __END__ __Python__ def kodosomar(x,y): r = x + y print r
Código:
#!/usr/bin/perl use Inline Python; sub pregex{ $texto = $_[0]; @hora = $texto =~ /<p id="relogio">(\d+:\d+:\d+)/; print "hora certa: " . $hora[0] . "\n"; } __END__ __Python__ import urllib2 kodo = urllib2.urlopen("http://www.horariodebrasilia.org/") kami = kodo.read() perl.pregex(kami)
bom galera esse é basico do que se pode fazer com esse modulo e com essa combinaçao de linguagens \o
by kodo no kami