您的位置:首页 > 其它

求高手解答~~

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这类数组的时候都会出现问题???

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  delete file perl image