所以我得到了这个错误:
Global symbol "@Z" requires explicit package name
(did you forget to declare "my @Z"?) at
C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 937. Global symbol "@Z" requires explicit package name (did you forget to declare "my @Z"?) at C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 945
代码:
my ($X_ref,$Y_ref)=grid($min_X,$max_X,$min_Y,$max_Y,$distance);my @X=@$X_ref;my @Y=@{$Y_ref};
for my $i (0..$#X){
$Z[$i]=20;#The function that defined the height of each point. This setting wil give you a flat roof. For a more advanced tree, try:
#$Z[$i]=-0.01*$X[$i]**2+0.2*$Y[$i]-0.005*$Y[$i]**2+20;
}
#End of input parameters.
my $min_radian = deg2rad($min_angle);
my $b = tan($min_radian);
my @Z=map{$_/$b} @Z;
在使用"my“声明代码以表示每个受尊重的错误之后:
"my" variable @Z masks earlier declaration in same statement at C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 945.
"my" variable @Z masks earlier declaration in same statement at C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 945.
syntax error at C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 937, near "$Z["
代码:
my ($X_ref,$Y_ref)=grid($min_X,$max_X,$min_Y,$max_Y,$distance);my @X=@$X_ref;my @Y=@{$Y_ref};
for my $i (0..$#X){
my $Z[$i]=20;#The function that defined the height of each point. This setting wil give you a flat roof. For a more advanced tree, try:
#$Z[$i]=-0.01*$X[$i]**2+0.2*$Y[$i]-0.005*$Y[$i]**2+20;
}
#End of input parameters.
my $min_radian = deg2rad($min_angle);
my $b = tan($min_radian);
my @Z=map{$_/$b} my @Z;
任何帮助都是很好的人,他们真的很难弄清楚为什么这两个不能正常工作。
发布于 2019-03-19 04:34:02
您在两个不同的作用域中声明了@Z
(使用关键字my
)。一个在for
循环中,另一个在后面。如果您需要@Z
在for
循环完成后仍然存在,则需要在该作用域之外(且在此之前)声明它。
此外,仅使用my
一次:
my @Z;
my ($X_ref,$Y_ref)=grid($min_X,$max_X,$min_Y,$max_Y,$distance);my @X=@$X_ref;my @Y=@{$Y_ref};
for my $i (0..$#X){
$Z[$i]=20;#The function that defined the height of each point. This setting wil give you a flat roof. For a more advanced tree, try:
#$Z[$i]=-0.01*$X[$i]**2+0.2*$Y[$i]-0.005*$Y[$i]**2+20;
}
#End of input parameters.
my $min_radian = deg2rad($min_angle);
my $b = tan($min_radian);
@Z=map{$_/$b} @Z;
发布于 2019-03-19 22:46:49
当您设置my时,所以您必须定义基数。
老学校: my @Z =();新学校: my $Z ="";
这应该是遗漏的那一个。
https://stackoverflow.com/questions/55229466
复制相似问题