为什么perl6只能自动生成,所以我不必使用"我的"每时每刻?

时间:2016-08-04 07:01:36

标签: variables declare perl6

在per5中,我可以使用变量,例如$ foo或@bar而不使用" my"。

library(lubridate)
date <- now()
print(date)
new_date <- update(date, year = 2010, month = 1, day = 1)
print(new_date)

在perl6中,为什么我必须使用&#34; my&#34;每时每刻?否则编译器会说变量unclared。为什么perl6只能自动生成?

$foo=1; @bar=(1,2);

我不喜欢必须经常使用&#34;我的&#34;。这个级别太低了,比如C;非常麻烦。

有没有办法打开始终自动生成?

感谢。

2 个答案:

答案 0 :(得分:10)

出于各种原因,从语言设计的角度来看,没有明确的变量声明是一个糟糕的主意。可以说,显式声明的块范围的词汇变量是可行的方法,我发现它有多少语言的“脚本”和#39;多样性得到这个&#39;错误&#39; (这是let被添加到Javascript的原因......)

也就是说,Perl6支持no strict pragma,它允许你省略声明。

答案 1 :(得分:4)

no strict;
$foo=1; @bar=(1,2);
print "{@a=1,2,3;}\n";
# OUTPUT«1 2 3␤»

Perl 6会尝试帮助您处理正确的错误消息。如果您声明所有变量,它会为您提供猜测,如果您有拼写错误,您的意思是什么。还有一些新的语言功能,如常量和无意义的变量,如果没有声明符,就无法写下来。