![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Ringe et C-funksjon froma Perl-skript | jisha | Shell programmering og Skripting | 9 | 05-08-2008 01:59 |
| Ringekonto Winzip fra Perl-skript | MobileUser | Shell programmering og Skripting | 5 | 04-04-2007 04:51 |
| ringer et shell script fra perl | gurukottur | Shell programmering og Skripting | 3 | 10-05-2006 12:48 |
| Box A perl scriptet ringer boksen B's shell script | new2ss | Shell programmering og Skripting | 1 | 09-13-2006 07:17 |
| Ringekonto CGI Perl i Shell script [haster] | DeepakXavier | Shell programmering og Skripting | 0 | 10-09-2005 02:51 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Ringe en perl skript fra et perl script
Code:
printf(”Going to call another script... \n”); system(”/my_dir/B.pl”); # call another perl script B.pl exit; Jeg har to bekymringer: 1) Det finnes en bedre metode for Ã¥ oppnÃ¥ samme formÃ¥l (f.eks ringe en annen perl skript fra en perl script)? 2) Legg merke til det er en exit-kommandoen i mitt kall skriptet. Vil avslutte kommandoen bli utført først etter at B.pl er fullført eller det vil bli gjennomført umiddelbart B.pl kalles? |
|
||||
|
Sitat:
Sitat:
Har du prøvd å finne ut om det er tilfelle? |
|
||||
|
Sitat:
Jeg qoute fra perldoc for systemet "... Har akkurat det samme som exec listen, bortsett fra at en gaffel gjøres først, og den overordnede prosessen venter for barnet prosess å fullføre ...." Så jeg kan ta det at min første skriptet vil vente på B.pl er ferdig før du går videre. den perldoc oppføring for exec sier ".. Den exec funksjonen utfører et system kommandoen og aldri tilbake -". Derfor kan jeg anta at når det ringer B.pl, kallehendelsen skriptet vil avslutte. Min hensikt er ikke å vente på B.pl til slutt, (dvs. kjører B.pl og ringer script selv exit) derfor jeg skal bruke exec? Eventuelle trekke tilbake? |
|
||||
|
Jeg liker å kreve at alle andre filer på begynnelsen av hovedårsakene script deretter bare ringe rutiner i dem ved behov. Dette kan være den beste måten, men det fungerer ganske bra for meg. For øvrig, hvis jeg husker riktig, tror jeg filen du ringer ikke nødvendigvis standard perl script overskrift, trenger ikke å slutte med "pl" eller "cgi", og du trenger ikke kjørbare tillatelser.
(main_file.pl) #! / usr / bin /perl krever "other_file.pl"; & do_something; & do_something_else; exit; (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 igjen"; ) 1; # return true I didn't test som script, men jeg vet at det er virkelig nær det jeg gjør. |
|
||||
|
Sitat:
Jeg kjørte inn koden, og det virket, men jeg trenger å passere argumenter, og å legge dem (på samme måte som du gjør med en subroutine) fungerer ikke. Dette er min første erfaring med perlOg tåpelig roadblocks er så frustrerende! Beklager - Jeg så overalt og prøvd en rekke tilnærminger, uten å lykkes. Eventuelle hjelpe ville være verdsatt! ![]() |
|
||||
|
Egentlig "plukke opp Perl"Ikke engang nevne ringe andre perl scripts, og "Roberts Perl Tutorial "er for Windows, og det bare nevner gjøre det med moduler. Men jeg klarte å bruke det og karlsworld står script til stykket sammen noe som virker.
Også, jeg glemte å nevne at jeg ikke ønsker å bruke systemet () fordi jeg må passere flere filnavn og vil kunne godta mellomrom uten hodepine av å finne ut hvilke brikker gå sammen i målet metode. Uansett. For de som leser dette i fremtiden, dette fungerer: (main_file.pl) Code:
#!/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; Code:
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
Utskrift: Hei! |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|