求高手解答~~
2009-07-24 16:06
197 查看
#!perl
@ARGV=qw(test.txt mama meat);
use Storable qw( nfreeze thaw );
die "Usage: updatemegadata <data file> <site name> <new map reference>/n"
unless @ARGV == 3;
my $megalithFile = $ARGV[0];
my $siteName = $ARGV[1];
my $siteMapRef = $ARGV[2];
my $tempFile = "tmp.$$";
open MEGADATA, "<$megalithFile"
or die "Can't open $megalithFile: $!/n";
open TMPMEGADATA, ">$tempFile"
or die "Can't open temporary file $tempFile: $!/n";
while ( <MEGADATA> ) {
my $frozen = pack "H*", $_;
my $fields = thaw( $frozen );
my ( $name, $location, $mapref, $type, $description ) = @$fields;
next unless $siteName eq $name;
$fields = [ $name, $location, $siteMapRef, $type, $description ];
$frozen = nfreeze( $fields );
$_ = unpack( "H*", $frozen ) . "/n";
}
continue {
print TMPMEGADATA $_
or die "Error writing $tempFile: $!/n";
}
close MEGADATA;
close TMPMEGADATA
or die "Error closing $tempFile: $!/n";
unlink $megalithFile
or die "Can't delete old $megalithFile: $!/n";
rename $tempFile, $megalithFile
or die "Can't rename '$tempFile' to '$megalithFile': $!/n";
exit 0;
运行结果:
Storable binary image v41.82 more recent than I am (v2.7) at ../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/thaw.al) line 415, <MEGADATA> line 1, at E:/MyWorks/PERLPR~1/tst.prl line 27
不知道为什么每次用$fields这类数组的时候都会出现问题???
@ARGV=qw(test.txt mama meat);
use Storable qw( nfreeze thaw );
die "Usage: updatemegadata <data file> <site name> <new map reference>/n"
unless @ARGV == 3;
my $megalithFile = $ARGV[0];
my $siteName = $ARGV[1];
my $siteMapRef = $ARGV[2];
my $tempFile = "tmp.$$";
open MEGADATA, "<$megalithFile"
or die "Can't open $megalithFile: $!/n";
open TMPMEGADATA, ">$tempFile"
or die "Can't open temporary file $tempFile: $!/n";
while ( <MEGADATA> ) {
my $frozen = pack "H*", $_;
my $fields = thaw( $frozen );
my ( $name, $location, $mapref, $type, $description ) = @$fields;
next unless $siteName eq $name;
$fields = [ $name, $location, $siteMapRef, $type, $description ];
$frozen = nfreeze( $fields );
$_ = unpack( "H*", $frozen ) . "/n";
}
continue {
print TMPMEGADATA $_
or die "Error writing $tempFile: $!/n";
}
close MEGADATA;
close TMPMEGADATA
or die "Error closing $tempFile: $!/n";
unlink $megalithFile
or die "Can't delete old $megalithFile: $!/n";
rename $tempFile, $megalithFile
or die "Can't rename '$tempFile' to '$megalithFile': $!/n";
exit 0;
运行结果:
Storable binary image v41.82 more recent than I am (v2.7) at ../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/thaw.al) line 415, <MEGADATA> line 1, at E:/MyWorks/PERLPR~1/tst.prl line 27
不知道为什么每次用$fields这类数组的时候都会出现问题???
相关文章推荐
- 关于C++中 is a概念的一点疑问,希望高手解答。
- 求高手解答JSP只用C标签怎样实现标志位
- 写游戏到底应该学些什么,望高手帮忙解答一下!
- Php高手带路--问题汇总解答
- 奇怪的OleDB错误,希望有高手帮忙解答一下
- 一段费解的程序,请高手解答:)
- 求高手解答类中各种sizeof问题
- 黑客高手——解答
- 诉求高手解答:.net web from 技术。
- 关于cookies中的utmc,utmb,utma,utmz,utmv各代表什么,麻烦高手帮忙解答
- 跪求高手解答!Fragment布局中的View概率性空指针
- 求Linux C++高手解答
- 求高手解答,数字图像处理!!!!
- wsdl地址是什么意思?是否可以通过浏览访问?为什么别人可以通过浏览器访问,我的不行 ,求高手解答
- Php高手带路--问题汇总解答
- 我有个问题想请高手解答一下!是C语言的!谢谢了!我有急用
- Java执行批处理.bat文件(有问题???求高手帮忙解答!!!)
- 用JSP连接SQL时遇到的问题---求高手解答
- 求高手解答FL2440的问题
- 最近遇到一个问题,哪位高手能帮忙解答一下