![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Chamando uma função C-froma Perl | jisha | Programação Shell Script e | 9 | 05-08-2008 01:59 |
| Chamando Winzip de Perl | MobileUser | Programação Shell Script e | 5 | 04-04-2007 04:51 |
| chamando um script de perl | gurukottur | Programação Shell Script e | 3 | 10-05-2006 12:48 |
| Uma caixa do script perl chamando casa B do shell script | new2ss | Programação Shell Script e | 1 | 09-13-2006 07:17 |
| Chamando CGI em Perl Shell script [urgente] | DeepakXavier | Programação Shell Script e | 0 | 10-09-2005 02:51 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Chamando um script perl de um script perl
Código:
printf(Going to call another script... \n); system(/my_dir/B.pl); # call another perl script B.pl exit; Oi a todos, acima, é um exemplo que estou usando para ligar para outro perl script a partir do actual perl script. Tenho duas preocupações: 1) Este existe uma maneira melhor de alcançar o mesmo objectivo (ou seja, uma outra chamada perl a partir de um script perl script)? 2) Aviso existe uma saída comando na minha vocação script. Será que a saída comando ser executado apenas depois de concluída B.pl é ou será executado imediatamente B.pl se chama? |
|
||||
|
Citação:
Citação:
Você tenta descobrir se é esse o caso? |
|
||||
|
Citação:
i qoute de perldoc do sistema "... faz exactamente a mesma coisa que exec LISTA, exceto que um garfo é feito primeiro, e da mãe para o filho processo aguarda processo para completar ...." Então, eu posso levá-lo de que o meu primeiro script irá esperar por B.pl para terminar antes de sair. perldoc a entrada para exec diz ".. A função exec executa um sistema de comando e nunca mais volta -". Por isso, podemos assumir que, após ter convida B.pl, chamando o script irá sair. A minha intenção não é de esperar que B.pl para terminar, (ou seja, corre B.pl e do chamador script própria saída), portanto, eu deveria usar exec? Qualquer chamar costas? |
|
||||
|
Eu gosto de exigir quaisquer outros arquivos no início do script principal, então basta chamar a rotina nos mesmos, conforme necessário. Isso pode ou não ser a melhor maneira, mas funciona muito bem para mim. Pela maneira, se bem me lembro, creio que o arquivo que você está chamando não tem necessariamente a norma perl script cabeçalho, não tem que terminar em "PL" ou "cgi", e não precisa executável permissões.
(main_file.pl) #! / usr / bin /perl exigir "other_file.pl"; & do_something; & do_something_else; saída; (other_file.pl) sub do_something ( print "Content-Type: text / html \ n \ n"; print "ok"; ) sub do_something_else ( print "Content-Type: text / html \ n \ n"; print "OK novamente"; ) 1; # return true Eu não ensaio que script, mas eu sei que é real perto do que eu. |
|
||||
|
Citação:
Corri o código e deu certo, mas eu preciso passar argumentos, e simplesmente adicionando-las (da mesma forma como você faz com uma subrotina) não funciona. Esta é a minha primeira experiência com o perl, E as barreiras são tão fútil frustrante! Sorry - Procurei por toda parte e tentou um monte de abordagens, sem sucesso. Qualquer ajuda seria apreciada! ![]() |
|
||||
|
Na verdade "embarcarem Perl"Não menciona sequer chamar outros perl scripts, e "Robert's Perl Tutorial "é para o Windows e que apenas menciona a fazê-lo com os módulos. No entanto, eu consegui usá-lo e karlsworld do script para juntar alguma coisa que funcione. Também, eu esqueci de mencionar que eu não quiser usar sistema (), porque eu preciso passar vários nomes de arquivo e quero ser capaz de aceitar espaços sem a cabeça de peças que vão descobrir juntos no alvo método. De qualquer maneira. Para quem ler este, no futuro, esta obra: (main_file.pl) Código:
#!/usr/bin/perl use strict; use warnings; require "other_file.pl"; my $string = "Hello"; my $string2 = "Hello again"; do_something($string); my ($s1, $s2) = do_something_else($string2); print "Received: $s1 $s2\n"; exit; (other_file.pl) Código:
sub do_something($){
my $string = $_[0];
print "Printing: $string\n";
}
sub do_something_else($){
my $string = $_[0];
print "Now printing: $string\n";
my $yyyy = 2009;
return ($string, $yyyy);
}
1; # return true
E o resultado é o seguinte: Impressão: Olá |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|