Run shell script on different machine using perl script

I want to execute my shell script on remote machine using SSH in perl script.
Please help me with syntax.

This is a simple example of copying a file to a remote host via scp:

# Copy file to remote server
print "**Copying file($file_name) to $host.\n";
$shell_cmd  =  "scp -p ${local_dir}/${file_name} ${user}\@${host}:${dir_for_file}";
$retval     =  system( $shell_cmd );
if ($retval != 0) {
  print "**Error: Could not copy file($local_dir/${file_name}) to $host: ${dir_for_file}.\n";
  return 1;
}
else {
  writelog ("INF Successful copy of file($local_dir/${file_name}) to $host: ${dir_for_file}");
  print "**Successful copy of file($local_dir/${file_name}) to $host: ${dir_for_file}\n";
}

This is a simple example of running script, command, etc. on remote host via ssh:

# Unzip files from zip file on remote host
print "**Unzipping files from zip file($zip_file_name) on $host to directory(${files_dir_for_rpt_files}).\n";
$shell_cmd  =  "ssh ${user}\@${host} 'unzip -jo /tmp/${zip_file_name} -d ${files_dir_for_rpt_files}'";
$retval     =  system( $shell_cmd );
if ($retval != 0) {

  print "**Error: Error unzipping zip file($zip_file_name) on $host in /tmp to ${files_dir_for_rpt_files}.\n";
  return 1;
}
else{
  print "**Successful unzipping of files from zip file($zip_file_name) on $host to directory(${files_dir_for_rpt_files}).\n";
}

That is 99% shell code with a thin layer of perl, why not just do it in shell?