关于perl写文件的问题

我写了一个函数,本来是想每次调用的时候填不同的参数,然后把运行得到的结果写到同一个文件里去。但是当我这么调用的时候$fun("PASS");$fun("FAIL");结果... 我写了一个函数,本来是想每次调用的时候填不同的参数,然后把运行得到的结果写到同一个文件里去。但是当我这么调用的时候
$fun("PASS");
$fun("FAIL");
结果他的输入永远都只有最后一个的,也就是参数为FAIL的结果。如果想把这些结果一个接一个的写进文件的话,应该要怎么做呢……
展开
 我来答
huanlong115
2011-04-14
知道答主
回答量:4
采纳率:0%
帮助的人:3.2万
展开全部
open(GO,">>text.txt")用追加,不要用>,>会清空原来的文件,进行从写,>>是追加
闽有你腐崽福D
2011-04-14 · TA获得超过316个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:92.7万
展开全部
open你的结果文件时用“>>”追加,“>”则是重写。
建议使用变量作为句柄传递给函数。
如:
open my $FILE, ">>", "file.out" or die ".....";
然后把句柄作为函数的一个参数输入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-15
展开全部
OSIX;
use strict;

sub writefile;
sub write_Pre_Prog_Data;
sub readfile_set;
our @data;
my $bin_file = "file.bin";

if (-e $bin_file){
readfile ($bin_file);
$data[10]=hex(unpack("N2","9E"));
writefile($bin_file);
}
exit(0);

sub readfile(){
my $data_file=shift @_; #文件名
our @data;
my $i;
my $buf;
my $file_size = -s $data_file;
if (open (DATAGET,$data_file)){
binmode (DATAGET);
for ($i=0;$i<$file_size;$i++){
else {
read(DATAGET,$buf,1);
$data[$i] = hex(unpack("N2",$buf));
}
}
close(DATAGET);
return 1;
}
else{
return 0;
}
}

sub writefile(){
our @data;
my $data_file = shift @_;
my $i;
if (open (DATASEND,">$data_file")){
binmode (DATASEND);
for($i=0;$i<@init_data;$i++){
if ($init_data[$i] ne ""){
print DATASEND pack("H2",sprintf("%02x",$init_data[$i]));
}
}
close (DATASEND);
return 1;
}else{
return 0;
}
}
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式