Jump to content


Photo

Require "script_auxiliar.pl";


  • Faça o login para participar
8 replies to this topic

#1 Wilton Paulo

Wilton Paulo

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado
  • Localidade:São Paulo - Zona Sul
  • Interesses:Aprender mais sobre WebDesigner e tirar dúvidas de membros sobre Hardware...entre outros

Posted 16/12/2005, 06:37

Pessoal,

Tenho a seguinte duvida.

Quando tenho um codigo em perl, exemplo meu_script.pl e quero compilar este codigo.

executo no linux o comando:
perlcc -o meu_script.cgi meu_script.pl

Então, meu script ficara compilado com o nome meu_script.cgi.

O problema é que uso chamadas de outros scripts e uso as variaveis deles, por exemplo:
require "script_auxiliar.pl";

Nao posso compilá-los, por se o fizer, não posso chamar para uso de variaveis.

Alguem tem alguma sugestão ou a solução para o problema ?
O que eu quero é compilar também o script_auxiliar.pl.
Wilton Paulo,

ICQ: 102226854
MSN: wiltonpaulo@hotmail.com

#2 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 16/12/2005, 10:14

coloca tudo junto num código só

#3 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 16/12/2005, 14:40

exato... até porque a compilação junta tudo em um arquivo só...
João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org

#4 Wilton Paulo

Wilton Paulo

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado
  • Localidade:São Paulo - Zona Sul
  • Interesses:Aprender mais sobre WebDesigner e tirar dúvidas de membros sobre Hardware...entre outros

Posted 16/12/2005, 18:30

Acho que vocês num estão entendendo.

Imagina se tenho 10 arquivos com códigos cgi.

Cada arquivo desse chama um menu, como se fosse uma biblioteca, e dessa forma coloco as variaveis desse menu no script_auxiliar.

Por exemplo, um menu contendo os links do site.

Quando precisar chamar o menu, apenas chamo a subrotina que fica no script_auxiliar.

Conteudo do script_auxiliar:
sub Menu {
print qq^Aqui coloco os links do menu^;
}
1;

Conteudo dos outros arquivos cgis do site:
- arquivo.cgi
require "script_auxiliar.pl"
&Menu; # Esta linha de comando chama o menu.

print "Mostra o resto da pagina";

- arquivo2.cgi
require "script_auxiliar.pl"
&Menu; # Esta linha de comando chama o menu.

print "Mostra o resto da pagina";

E pior ainda, não tenho apenas o menu, tenho dezenas de variaveis que preciso utilizar.

Então não posso compilar todos os meus arquivos com o código desse auxiliar, se fizer isso, meu código vai ficar muito grande e eu to tentando deixar no tamanho minimo possivel.
Wilton Paulo,

ICQ: 102226854
MSN: wiltonpaulo@hotmail.com

#5 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 16/12/2005, 21:59

Então você está programando na linguagem errada ou está tentando usar o compilador errado ...

o perlcc creio que não faça isso, tbm utilizo ele para compilar scripts perl pra shell, quando preciso carregar um arquivo pelo require, eu tenho que copiar todo o código desse arquivo e colocar no script principal pra conseguir que ele funcione bem ...

Vc pode tentar o compilador "PAR" não é muito seguro ...

#6 Wilton Paulo

Wilton Paulo

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado
  • Localidade:São Paulo - Zona Sul
  • Interesses:Aprender mais sobre WebDesigner e tirar dúvidas de membros sobre Hardware...entre outros

Posted 16/12/2005, 22:06

hahah...Descobri como fazer.

Vou explicar exatamente como fiz o teste:

Criei um arquivo chamado libteste.pl, e abaixo segue o conteudo:
#!/usr/bin/perl

sub Rotina_Teste()
{
print "Aqui ficara o menu do meu site\n";
}
1;

Este arquivo funciona como se fosse uma biblioteca e cada instrução pode ser usada nos outros CGIs.

Depois criei o index.pl onde ficara o meu site, a pagina principal, segue o conteudo:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
require "libteste.plc"; # Efetuo a chamada da libteste com o nome já compilado.

&Rotina_Teste; # Chamo a subrotina que esta dentro da "biblioteca", esta vai me trazer o menu.

Tenho o meu index.pl criado e quero agora compilar este arquivo.
No console do linux digito:
#perlcc -o index.cgi index.pl

A minha duvida era para compilar a biblioteca, que não funcionava quando fazia o mesmo comando acima.
Ai conversei com um colega que conhece bem de perl e ele me falou que o comando tem que ser como abaixo, no caso de ser uma biblioteca ou chamada de script.

#perlcc -B -o libteste.plc libteste.pl

Ele disse que o arquivo tem que ser compilado com o formato de compilação bytecode.

Mas agradeço a ajuda.
Wilton Paulo,

ICQ: 102226854
MSN: wiltonpaulo@hotmail.com

#7 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 17/12/2005, 19:48

só que o bytecode tem como descompilar, por isso não gosto muito de usar ele ... esse é o problema de usar ele

Não cheguei a testar, mas está conseguindo executar na pasta cgi-bin seu script compilado pelo perlcc ?

Tentei mas não sei o que acontece, até o simples "Hello World" sempre da Erro 500, mesmo o código estando certo:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello World";

Depois que compilo e coloco na cgi-bin com os chmod 755 não roda de jeito nenhum ...

#8 Wilton Paulo

Wilton Paulo

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado
  • Localidade:São Paulo - Zona Sul
  • Interesses:Aprender mais sobre WebDesigner e tirar dúvidas de membros sobre Hardware...entre outros

Posted 19/12/2005, 22:15

Que estranho, aqui ta rodando normal. Eu configurei o apache pra rodar CGI no diretorio /var/www/html/dirdomeusite/cgi-bin/

Cheguei a testar no Fedora 4 e no Slackware 10.1.

Qual o Sistema Operacional você está usando ?
Wilton Paulo,

ICQ: 102226854
MSN: wiltonpaulo@hotmail.com

#9 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 19/12/2005, 22:35

Fedora core 4,

Parece que era só atualizar o perl (de 5.8.6 pra 5.8.7), corrigiram já pelo jeito, consegui rodar




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq