我试过这段代码。这不起作用。我输出没有结果。我犯了什么错误?
my %fruit_color = ("apple", "red", "banana", "yellow");
my @fruits = keys %fruit_colors;
my @colors = values %fruit_colors;
print @fruits;
print @colors;
答案 0 :(得分:9)
您宣布fruit_color
但引用fruit_colors
(请注意尾随S)
如果您使用了警告和限制,您会注意到这一点。
use warnings;
use strict;
Global symbol "%fruit_colors" requires explicit package name at C:\temp\test.pl line 4.
Global symbol "%fruit_colors" requires explicit package name at C:\temp\test.pl line 5.
答案 1 :(得分:7)
第一个错误是没有这个作为第一行:
use strict;
use warnings;
其次,你有一个拼写错误(如果你使用了严格的模块,就会更容易发现。)
答案 2 :(得分:4)
伙计,你们这些人很快。
正如其他人所说:
use warnings
和use strict
,则会收到一条错误消息,告诉您错误。编写易读且相对无错误的Perl代码有很多提示和技巧。例如,我不在变量名中使用复数。因此,如果它是“水果”或“水果”的问题,我知道它应该是“水果”。我也倾向于使用像“fruitColorHash”和“FruitColorList”这样的术语来说出我的数据类型的名称,即使(Camel Casing isNotInStyleAnyMore,但是然后是Im_an_old_grouchy_developer_who_is_set_in_his_ways)。
Damian Conway的书Perl Best Practices是一本很好的书,可以帮助你学习所有这些技巧和技巧,帮助你避免这样的问题。事实上,这本书被认为是优秀Perl编程的试金石,现在有一整篇专门讨论Damian Conway的书籍Perlstyle,以及一个名为tidyperl的程序,它将帮助重新格式化和指出地方不遵循康威的例子。
所以,请继续查看Perldoc中的最佳实践部分(您知道perldoc
文档,不是吗?输入命令perldoc
并查看您获得的内容)并吸收知识放在那里。然后得到康威的书。
答案 3 :(得分:3)
您的代码中有一个拼写错误,如果您有以下内容,您会注意到:
use warnings;
use strict;
你的代码中的。你应该永远这样。
答案 4 :(得分:1)
你有一个错字:
my %fruit_color = ("apple", "red", "banana", "yellow");
应该是
my %fruit_colors = ("apple", "red", "banana", "yellow");