如何在perl中使用system()时防止exec错误

如何在perl中使用system()时防止exec错误,perl,exec,tk,Perl,Exec,Tk,我正在使用perl Tk和以下代码创建一个任务管理器 my $mw=MainWindow->new; $mw->title("Task Manager"); $numproc = `ps|wc -l`; $i=2; @a=1; while($i <= $numproc){ my $p=`sh printproc.sh $i`; system($p); $mw->Checkbutton(-text=>$p)->pack; $i=$

我正在使用perl Tk和以下代码创建一个任务管理器

my $mw=MainWindow->new;
$mw->title("Task Manager");
$numproc = `ps|wc -l`;
$i=2;
@a=1;
while($i <= $numproc){
    my $p=`sh printproc.sh $i`;
    system($p);
    $mw->Checkbutton(-text=>$p)->pack;
    $i=$i+@a;

}
MainLoop;
我得到一个窗口,其中每个进程都列为一个复选按钮,但每个进程都会出现以下错误

无法执行“2645”:在first.pl第11行没有这样的文件或目录

如何避免此错误

my $p=`sh printproc.sh $i`;
system($p);
这将获取运行
printproc.sh
的输出并将其存储在
$p
中,然后尝试将其作为命令执行。移除
系统($p)

这将获取运行
printproc.sh
的输出并将其存储在
$p
中,然后尝试将其作为命令执行。移除
系统($p)

这将获取运行
printproc.sh
的输出并将其存储在
$p
中,然后尝试将其作为命令执行。移除
系统($p)

这将获取运行
printproc.sh
的输出并将其存储在
$p
中,然后尝试将其作为命令执行。移除
系统($p)

my $p=`sh printproc.sh $i`;
system($p);