ps -ef结果存入1.txt文件出错.

ps -ef结果存入1.txt文件出错.

#!/usr/bin/perl
my $a=system("ps -ef");
open(CONFIG,'>>1.txt');
print(CONFIG $a);

结果一浏览cat 1.txt是这样的.
[root@openfire perl]# cat 1.txt
0[root@openfire perl]#


1.txt文件里面是0
$a 里面存储的是system函数的调用返回值。标志是不是成功运行。并不是系统调用命令的输出。
可以采用以下代码实现:

@a = `ps -ef`


QUOTE:
原帖由 Perl小手 于 2008-4-18 11:11 发表
$a 里面存储的是system函数的调用返回值。标志是不是成功运行。并不是系统调用命令的输出。

小弟是新手对PERL,如何解决呢!
或者把my $a=system("ps -ef");
open(CONFIG,'>>1.txt');
print(CONFIG $a);
改成 system("ps -ef >> 1.txt")


QUOTE:
原帖由 Perl小手 于 2008-4-18 11:13 发表
或者把my $a=system("ps -ef");
open(CONFIG,'>>1.txt');
print(CONFIG $a);
改成 system("ps -ef >> 1.txt")

谢谢.这种方法.已经涉及到shell了.我只是想单纯使用perl做到.已经做好了.多谢

#!/usr/bin/perl
@a=`ps -ef`;
open(CONFIG,'>>1.txt');
print(CONFIG @a);


QUOTE:
原帖由 Perl小手 于 2008-4-18 11:11 发表
$a 里面存储的是system函数的调用返回值。标志是不是成功运行。并不是系统调用命令的输出。

明白.thx
这个方法应该就行!