in reply to Re^4: shell to perl equivalent
in thread shell to perl equivalent

this is how i ran it...
perl filename.pl remoteuser remoteserver

The problem with your script is that you never use the command line args, and nothing is ever assigned to the variables "$remoteuser" and "$remoteserver". Do it like this (assuming that "remoteuser" is an alphanumeric string, and "remoteserver" is alphanumerics with periods):

#!/usr/bin/perl die "Usage: $0 remoteuser remoteserver\n" unless ( @ARGV == 2 and $ARGV[0] =~ /^\w+$/ and $ARGV[1] =~ /^\w+( +\.\w+)*$/ ); paranthesis( @ARGV ); # This is important sub paranthesis { my ( $remoteuser, $remoteserver ) = @_; # equally important system( 'scp', '/users/myuser/merc/rem_snew.pl', "$remoteuser\@$remoteserver:/users/$remoteuser/tmp/rem_snew2.p +l" ); my $result = `ssh $remoteuser\@$remoteserver perl /users/$remoteuser/tmp/ +rem_snew2.pl`; print "$result\n"; system( 'ssh', "$remoteuser\@$remoteserver", 'rm', "/users/$remoteuser/tmp/rem_snew2.pl" ); }

Also, you might want to try doing these other two commands first, before running the perl script:

ping -c 2 remoteserver ssh remoteuser@remoteserver ls -d tmp
If the ping fails, it means you are using a non-existent host name for "remoteserver"; if the ping succeeds but the ssh fails, it's either because your "remoteuser" name does not match an existing user name on that system, or because the home directory for that user account does not contain a subdirectory called "tmp".

Replies are listed 'Best First'.
Re^6: shell to perl equivalent
by mercuryshipz (Acolyte) on Feb 18, 2008 at 22:31 UTC

    thanks a lot graff.... absloutely perfect...