我有自己可以正常工作的代码但是当我与另一个函数结合使用时,它会显示此错误消息" Tk ::错误:不能在open_gui.pl第231行使用未定义的值作为HASH引用。"。第231行是这一行"我的$ output-> {$ count} = unpack(' C',getc($ otp));"以下是我的代码
sub main($$){
my $call_form = shift ;
my $file1 = shift -> get() ;
my $output={};
bless $output;
my $j =0;
my $i =0;
grab_file($output,$file1);
}
sub grab_file($$){
my $output=shift;
my $file = shift;
open(my $otp, '<' , "$file") or die "Error, File1 could not open\n";
open(my $input, "> info.txt") or die "Error, File3 could not open\n";
my $count = 0;
binmode($otp);
seek ($otp,829440,0);
for my $count (0..27648){
my $output->{$count} =unpack('C',getc($otp));
print $input "$output->{$count}\n";;
}
close ($input);
close($otp);
open(FILE4, ">data.txt") or die "Error, File4 could not open\n";
open ( my $input, '<', "info.txt" ) or die $!;
chomp ( my @file = <$input> );
print FILE4 join (" ",splice (@file, 0, 16)),"\n"while @file;
close($input);
close(FILE4);
}
这是代码的一部分,这里没有显示代码的上半部分主要是构建GUI的tk。这个没有与Tk函数结合的子程序没有在这里显示可以通过自己将二进制文件名称放到$ otp工作正常但是当我想从GUI的输入获取文件时它显示错误。任何人都可以帮忙吗?谢谢
答案 0 :(得分:0)
您不需要声明哈希键。从这一行删除“我的”。