关于perl写文件的问题
我写了一个函数,本来是想每次调用的时候填不同的参数,然后把运行得到的结果写到同一个文件里去。但是当我这么调用的时候$fun("PASS");$fun("FAIL");结果...
我写了一个函数,本来是想每次调用的时候填不同的参数,然后把运行得到的结果写到同一个文件里去。但是当我这么调用的时候
$fun("PASS");
$fun("FAIL");
结果他的输入永远都只有最后一个的,也就是参数为FAIL的结果。如果想把这些结果一个接一个的写进文件的话,应该要怎么做呢…… 展开
$fun("PASS");
$fun("FAIL");
结果他的输入永远都只有最后一个的,也就是参数为FAIL的结果。如果想把这些结果一个接一个的写进文件的话,应该要怎么做呢…… 展开
展开全部
open你的结果文件时用“>>”追加,“>”则是重写。
建议使用变量作为句柄传递给函数。
如:
open my $FILE, ">>", "file.out" or die ".....";
然后把句柄作为函数的一个参数输入。
建议使用变量作为句柄传递给函数。
如:
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;
}
}
另外,站长团上有产品团购,便宜有保证
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;
}
}
另外,站长团上有产品团购,便宜有保证
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询