作业帮 > 综合 > 作业

Perl modification of a read-only value attempted at.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 02:34:27
Perl modification of a read-only value attempted at.
这是出错误的子函数.
sub GetMatchPoint{
my($r,$u,$p1_x,$p1_y,$p2_x,$p2_y,$p3_x,$p3_y,$m_x,$m_y)=@_;
$e1=1;
$e2=1;
$e3=1;
my $a=((@$u[3]-$r)*(@$u[3]-$r))/($e1*$e2);
my $b1=(($r-@$u[1])*(@$u[3]-$r)) / ($e1*$e2);
my $b2=(($r-@$u[2])*(@$u[4]-$r)) / ($e2*$e3);
my $b=$b1+$b2;
my $c=(($r-@$u[2])*($r-@$u[2]))/($e2*$e3);
$$m_x=int($a*$p1_x+$b*$p2_x+$c*$p3_x);#####这是出错的行数.
$$m_y=int($a*$p1_y+$b*$p2_y+$c*$p3_y);
print "p1:($p1_x,$p1_y)\n";
print "p2:($p2_x,$p2_y)\n";
print "p3:($p3_x,$p3_y)\n";
print "match:($$m_x,$$m_y)\n";
print "\n";
}
之前几次的调用都没有问题.
可能有个原因就是你传入的参数有问题,比如最后两个参数传入的是scalar常量,传入引用才没问题
像这种参数很多的可以用hash然后一个引用就可以传进来