Ich rufe ein Perl-Skript von einem anderen mit System(), ich möchte diese Skripte eine Kommunikation (Handshake Art von Mechanismus) wo ich basierend auf der Ausgabe von einem Skript kann ich weiter Verarbeitung in einem anderen.Perl: Handshake-Mechanismus unter Perl-Skripten
bitte einen Blick auf diese:
können sagen, dass ich in main.pl bin
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use Net::OpenSSH;
6
7 #check for if the socket is established
8 #call the client (host) script
9 my $pwd = $ENV{'PWD'};
10 my $rc = system("$pwd/utpsm_run_automation/utpsm_lts_client.pl")
11 or die "cant run client.pl $! \n";
in dem obigen Skript, das ich nennen werde, will ich sehen, wenn die Verbindung zum Server hergestellt wird , also einige Handshake-Mechanismen, die ich brauche, im Grunde für die weitere Verarbeitung in main.pl, muss ich wissen, was der Status des obigen Skriptes war, nachdem es ausgeführt wurde. bin ich jetzt klar?
hier ist client.pl
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4 use IO::Socket::INET;
5 use Net::OpenSSH;
6 #auto-flush on socket
7 $| = 1;
8
9 #create a connecting socket
10 my $socket = new IO::Socket::INET (
11 PeerHost => 'ltsbm.aus.XX.XX',
12 PeerPort => 7777,
13 Proto => 'tcp',
14 );
15 die "cannot connect to the server$! \n" unless $socket;
16 print "VIRU ::connected to the server \n";
17
18 #data to send to the server
19 my $req = 'VIRU :: Sending data \n';
20 sleep(20);
21 my $size = $socket->send($req);
22
23 #sending file over socket using scp
Diese client.pl ist
Ihre Frage ist vage. Könnten Sie ein konkreteres Beispiel dafür liefern, was Sie erreichen möchten? – xxfelixxx
Möchten Sie nur wissen, ob der Systembefehl fehlgeschlagen ist, oder möchten Sie die Ausgabe? – xxfelixxx
Sie können das '(system ($ cmd) == 0) oder sterben" Kann nicht ausführen $ cmd ': $! ";' Construct – xxfelixxx