Perl-tan的未定义子例程

时间:2019-03-19 00:31:11

标签: perl

有一个问题,因为不明白为什么它不适合晒黑,但可以很好地为cos和sin工作。我认为问题在于它是未定义的,因此是错误消息,但是为什么cos和sin确实起作用而不是tan起作用?然后我将如何定义tan方法?抱歉,对于新手问题,我正在尝试开发Perl。

错误:

Undefined subroutine &Slic3r::Print::SupportMaterial::tan called at C:/Users/owner/Documents/Slic3r/lib/Slic3r/Print/SupportMaterial.pm line 945.

Tan代码:

my $min_angle = 40;
my $min_radian = deg2rad($min_angle);
my $b = tan($min_radian);
@Z=map{$_/$b} @Z;

邮编:

Polygon->new(map [ $circle_radius * cos $_, $circle_radius * sin $_ ]

编辑:意识到子例程将需要一个函数,但是当我查看要与模块集成的Perl脚本时,它运行良好且没有方法,只是声明为tan。

1 个答案:

答案 0 :(得分:3)

sincosbuiltin Perl functions,但tan不是。只需简单的声明即可轻松补救

sub tan { sin($_[0]) / cos($_[0]) }

或导入定义切线函数的模块

use Math::Trig;