【发布时间】:2015-12-26 23:58:20
【问题描述】:
我正在尝试输入 2 个 ascii 文件并将它们输出到 2 个十六进制文件(sym.txt,sym2.txt),然后对两个十六进制文件求和,并将值的反向输出到最后一个文件(symout.txt)中。 txt)。我真的不明白我做错了什么......提前感谢您的帮助:D。
use strict;
use warnings 'all';
open my $in, "<", "f1.txt";
my $input = do { local $/; <$in> };
open my $out, ">", "sym.txt";
print $out unpack 'H*', $input;
open my $in1, "<", "f2.txt";
my $input1 = do { local $/; <$in1> };
open my $out1, ">", "sym2.txt";
print $out1 unpack 'H*', $input1;
open(my $fh1, '<', 'sym.txt') or die $!;
open(my $fh2, '<', 'sym2.txt') or die $!;
open my $fh_out, '>', 'symout.txt' or die $!;
until ( eof $fh1 or eof $fh2 ) {
my @l1 = map hex, split '', <$fh1>;
my @l2 = map hex, split '', <$fh2>;
my $n = @l2 > @l1 ? @l2 : @l1;
my @sum = map {
no warnings 'uninitialized';
$l1[$_] + $l2[$_];
} 0 .. $n-1;
@sum = map { sprintf '%X', $_ } @sum;
print { $fh_out } reverse(@sum), "\n";
}
【问题讨论】:
-
你得到的结果有什么问题?
-
我得到了 2 个具有十六进制值的文件,但我的 symout.txt 输出为空 ....
标签: perl