这是我第一次使用Perl进行编码,我遇到了运行问题。
尝试运行时,它只是说Too many errors
,这对您开始编码时没什么帮助。
这是我的代码:
#!/usr/bin/perl
use Modern::Perl;
print "Gimme Number 1:" ;
my $num1=<>;
print "Gimme Number 2:" ;
my $num2=<>;
print "Gimme Number 3:" ;
my $num3=<>;
my $add=$num1 + $num2 + $num3;
my $muti=$num1 * $num2 * $num3;
my $div=$num1 / $num3;
my $rad=$num3 % $num2;
my $sub=$num2 - $num3;
my $big=$num1 * $num2/$num4;
print "ADD:$add";
print "MUL:$muti";
print "DIV:$div";
print "MOD:$rad";
print "SUB:$sub";
print "EQT:$big";
我做错了什么?感谢。
答案 0 :(得分:2)
对代码运行编译检查perl -cw filename.pl
会产生:
Global symbol "$num4" requires explicit package name at foo line 20.
这表明您应该声明$num4
并在顶部添加输入行,或者正如Schwern所说,$num4
是$num3
的拼写错误。
答案 1 :(得分:0)
尝试在cmd perl -c <filename.pl>
中检查语法正确性
始终在起点中使用这两行
use strict;
use warnings;
your perl code goes here
。这些将帮助您在检查语法时显示是否存在任何错误或警告。
答案 2 :(得分:0)
我相信您使用了<appender name="ERROR_EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<!-- guarantees that only logs of ERROR will be emailed -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<asynchronousSending>true</asynchronousSending>
<includeCallerData>true</includeCallerData>
<smtpHost>xyz.company.com</smtpHost>
<smtpPort>25</smtpPort>
<STARTTLS>false</STARTTLS>
<to>me@company.com</to>
<from>administrator@company.com</from>
<subject>ERROR: %logger{20} - %m</subject>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %-5level %logger{35} - %message%n</pattern>
</layout>
</appender>
而不是$ new3或其他变量。
给出问题的那一行是
$new4
请在更换上述代码后更新代码,以便我们首次尝试成功