讨论:执行外部命令,几种方式之比较

讨论:执行外部命令,几种方式之比较

执行外部命令,有几种方式:
1:用`,如
`$sclccmd`

2:用system

3:用管道,如下所示:
my $cdiff_cmd  = 'perl -w ' . ${EXECDIR} . $Path_Sep . 'cdiff.pl';
         $cdiff_cmd       .= " -unlimited -noprolog -blank_ignore";
         $cdiff_cmd       .= ($OPTS{'pred'}) ? " -pred" : " $from_pname";
         $cdiff_cmd       .= " $to_pname";
         print  $cdiff_cmd;
         print  "\n";
         $filename = "$cdiff_cmd |";
      }
      $filehandle = \*INPUT;
      unless (open(INPUT, $filename)) {
         &ErrorMsg("Can't open $filename for reading: $!");
         return %error;
      }

请问执行一个外部命令时,该如何选择呢?三选一,随便选吗?
1:用`,如
`$sclccmd`

2:用system
这两种方法的区别在小骆驼的书中看到了,已经清楚了,那这两种方法和第三种方法(管道)使用时,该如何确定呢?即什么时候适合用管道呢?
都知道了,小骆驼的书中都有。谢谢
能否把知道也跟我们大家说一说阿!

谢谢!