---- {{#t|Contribute to Pugs}} ---- Contribute to {{#x|Pugs}} 向{{#x|Pugs}}贡献 ☺{{#author|Agent Zhang (章亦春)}}☺ {{#date|2007.6}} ---- {{#x|☺}} {{#ci|What}} is {{#x|Pugs}}? {{#x|什么}}是 {{#t|Pugs}}? ---- Audrey Tang's {{#ci|first}} mail to p6l for {{#x|Pugs's birth}} 唐凤发送到 p6l 的 宣告{{#x|Pugs 诞生}}的{{#ci|第一封}}邮件 ---- {{img src="#" width="0" height="0"}} {{img src="images/first_mail.png" width="812" height="519"}} ---- It's {{#ci|no longer}} a {{#x|featherweight}} Perl 6. 它不再是 轻量级的 Perl 6 了 ---- {{img src="images/pugscode.png" width="692" height="540"}} ---- Pugs 是用 {{#ci|Haskell}} 编写的一个 {{#x|Perl 6}} 的实现。 它旨在实现“纲要”定义的{{#ci|整个}} Perl 6 规格。 ---- It even {{#ci|runs}} in your {{#x|web browser}}! 它甚至能运行在 你的浏览器中! ---- {{img src="images/runpugs.png" width="1032" height="639"}} ---- ...unlike how it was with Perl 5, {{#ci|none}} of these projects (Pugs, parrot, and others) is designed to be the {{#x|Official Perl}}. Perl 6 is {{#ci|anything}} that passes the {{#x|official test suite}}. -- Perl 6 Synopsis 1 和 Perl 5 不同的是,这些项目(Pugs, parrot 及其他) 中{{#ci|没有一个}}被设计为{{#x|官方的 Perl 6}}. 任何东西,只要通过了{{#x|官方测试集}}, 都是 Perl 6. ---- {{#x|☺}} {{#ci|Why}} contribute to Pugs? {{#x|为什么}}向 Pugs 贡献? ---- We {{#ci|are}} implementing {{#x|Perl 6}}! 我们{{#ci|正在}}实现{{#x|Perl 6}}! ---- {{#cm|# Hyper operators}} {{#kw|use v6}}; {{#kw|my}} {{#v|@res}} = (1,2,3,4) {{#x|>>}}+{{#x|<<}} (1,2,3,4); {{#cm|@res now is (2,4,6,8)}} ---- {{#cm|# Junctions}} {{#kw|use v6}}; {{#kw|if}} {{#v|$num}} == 3 {{#x||}} 7 {{#x||}} 9 { {{#cm|# ...}} } + {{#kw|use v5}}; {{#kw|if}} ({{#v|$num}} == 3 {{#x|||}} {{#v|$num}} == 7 {{#x|||}} {{#v|$num}} == 9) { {{#cm|# ...}} } ---- {{#cm|# subroutine signature}} {{#kw|use v6}}; {{#kw|sub}} add ({{#v|$a}}, {{#v|$b}}) { {{#v|$a}} + {{#v|$b}}; } ---- {{#cm|# modern OO support}} {{#kw|use v6}}; {{#kw|class}} Dog { {{#kw|has}} {{#v|$.tail}} {{#kw|is rw}}; {{#kw|has}} {{#v|@.legs}}; {{#kw|has}} {{#v|$!brain}}; {{#kw|method}} set_legs ({{#v|@legs}}) { {{#v|@.legs}} = {{#v|@legs}}; } } ---- {{#cm|# Rules and grammars}} {{#kw|rule}} {{#v|statement_list}} { {{#v|}}* } {{#kw|rule}} {{#v|statement}} { {{#v|