SlideShare a Scribd company logo
1 of 62
Download to read offline
Outline
             Introduction
       Seeing is believing
                   Mouse
                 The End




  Mooooooooooooooooose

       sunnavy@bestpractical.com


            November 08, 2008




sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                           Introduction
                     Seeing is believing
                                 Mouse
                               The End



Introduction
    What’s Moose?
Seeing is believing
   Let’s Compare!
   Attributes - has
   Roles - with
   Method Modifiers
   Other Methods
Mouse
  What’s Mouse?
  Why?
  Mouse is not enough in future?
The End

              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing   What’s Moose?
                                Mouse
                              The End


What Moose is not


      NOT a cow




             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing   What’s Moose?
                                Mouse
                              The End


What Moose is not


      NOT a cow
      NOT contain any melamine




             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing   What’s Moose?
                                Mouse
                              The End


What Moose is not


      NOT a cow
      NOT contain any melamine
      NOT Perl 6



             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing   What’s Moose?
                                Mouse
                              The End


What Moose is not


      NOT    a cow
      NOT    contain any melamine
      NOT    Perl 6
      NOT    just a toy


             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing   What’s Moose?
                                Mouse
                              The End


What Moose is not


      NOT    a cow
      NOT    contain any melamine
      NOT    Perl 6
      NOT    just a toy
      NOT    a new object system

             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing   What’s Moose?
                                Mouse
                              The End


Google knows something about Moose




             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                            Introduction
                      Seeing is believing   What’s Moose?
                                  Mouse
                                The End


Interested in that animal?




      Let’s talk about that animal
                  later


               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                           Introduction
                     Seeing is believing   What’s Moose?
                                 Mouse
                               The End


What Moose here really is

      an extension of the existing object
      system of Perl 5




              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                           Introduction
                     Seeing is believing   What’s Moose?
                                 Mouse
                               The End


What Moose here really is

      an extension of the existing object
      system of Perl 5
      very much inspired by Perl 6




              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                           Introduction
                     Seeing is believing   What’s Moose?
                                 Mouse
                               The End


What Moose here really is

      an extension of the existing object
      system of Perl 5
      very much inspired by Perl 6
      built on top of Class::MOP(
      Welcome to Meta world! )


              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                           Introduction
                     Seeing is believing   What’s Moose?
                                 Mouse
                               The End


What Moose here really is

      an extension of the existing object
      system of Perl 5
      very much inspired by Perl 6
      built on top of Class::MOP(
      Welcome to Meta world! )
      postmodern( just like Perl ;)

              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                           Introduction
                     Seeing is believing   What’s Moose?
                                 Mouse
                               The End


What Moose here really is

      an extension of the existing object
      system of Perl 5
      very much inspired by Perl 6
      built on top of Class::MOP(
      Welcome to Meta world! )
      postmodern( just like Perl ;)
      ready to use
              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                           Introduction
                     Seeing is believing   What’s Moose?
                                 Mouse
                               The End


Official Definition


   Moose is a postmodern object system
   for Perl 5 that takes the tedium out
   of writing object-oriented Perl. It
   borrows all the best features from
   Perl 6, CLOS (LISP), Smalltalk, Java,
   BETA, OCaml, Ruby and more, while
   still keeping true to its Perl 5 roots.

              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                           Introduction    Attributes - has
                     Seeing is believing   Roles - with
                                 Mouse     Method Modifiers
                               The End     Other Methods


The Request




              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                         Introduction    Attributes - has
                   Seeing is believing   Roles - with
                               Mouse     Method Modifiers
                             The End     Other Methods


What we normally OOP




            sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                             Introduction    Attributes - has
                       Seeing is believing   Roles - with
                                   Mouse     Method Modifiers
                                 The End     Other Methods


If we have Moose . . .




                sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                            Introduction    Attributes - has
                      Seeing is believing   Roles - with
                                  Mouse     Method Modifiers
                                The End     Other Methods


You may point out. . .




   You skipped use strict; and use
   warnings; on purpose to reduce
                lines!

               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                              Introduction    Attributes - has
                        Seeing is believing   Roles - with
                                    Mouse     Method Modifiers
                                  The End     Other Methods


So, I’m telling you. . .




    Well, I skipped those two lines
    because Moose does that for
                  me.

                 sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
             Introduction    Attributes - has
       Seeing is believing   Roles - with
                   Mouse     Method Modifiers
                 The End     Other Methods




 Thanks, Moose!




sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                             Introduction    Attributes - has
                       Seeing is believing   Roles - with
                                   Mouse     Method Modifiers
                                 The End     Other Methods


use ’has’ to install attributes




     has $name|@$names => %options




                sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                               Introduction    Attributes - has
                         Seeing is believing   Roles - with
                                     Mouse     Method Modifiers
                                   The End     Other Methods


%options


      is ( ’ro|rw’ )




                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                               Introduction    Attributes - has
                         Seeing is believing   Roles - with
                                     Mouse     Method Modifiers
                                   The End     Other Methods


%options


      is ( ’ro|rw’ )
      isa ( type constraints )




                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                               Introduction    Attributes - has
                         Seeing is believing   Roles - with
                                     Mouse     Method Modifiers
                                   The End     Other Methods


%options


      is ( ’ro|rw’ )
      isa ( type constraints )
      does ( $role )




                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                               Introduction    Attributes - has
                         Seeing is believing   Roles - with
                                     Mouse     Method Modifiers
                                   The End     Other Methods


%options


      is ( ’ro|rw’ )
      isa ( type constraints )
      does ( $role )
      required ( 1|0 )




                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                               Introduction    Attributes - has
                         Seeing is believing   Roles - with
                                     Mouse     Method Modifiers
                                   The End     Other Methods


%options


      is ( ’ro|rw’ )
      isa ( type constraints )
      does ( $role )
      required ( 1|0 )
      default




                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                               Introduction    Attributes - has
                         Seeing is believing   Roles - with
                                     Mouse     Method Modifiers
                                   The End     Other Methods


%options


      is ( ’ro|rw’ )
      isa ( type constraints )
      does ( $role )
      required ( 1|0 )
      default
      predicate ( method name to check for initialization )




                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                               Introduction    Attributes - has
                         Seeing is believing   Roles - with
                                     Mouse     Method Modifiers
                                   The End     Other Methods


%options


      is ( ’ro|rw’ )
      isa ( type constraints )
      does ( $role )
      required ( 1|0 )
      default
      predicate ( method name to check for initialization )
      clearer ( method name to uninitialize )




                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                       Introduction    Attributes - has
                 Seeing is believing   Roles - with
                             Mouse     Method Modifiers
                           The End     Other Methods


is




     ro




          sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                       Introduction    Attributes - has
                 Seeing is believing   Roles - with
                             Mouse     Method Modifiers
                           The End     Other Methods


is




     ro
     rw




          sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                  Introduction    Attributes - has
            Seeing is believing   Roles - with
                        Mouse     Method Modifiers
                      The End     Other Methods


is




     sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                          Introduction    Attributes - has
                    Seeing is believing   Roles - with
                                Mouse     Method Modifiers
                              The End     Other Methods


isa - type




             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                          Introduction    Attributes - has
                    Seeing is believing   Roles - with
                                Mouse     Method Modifiers
                              The End     Other Methods


isa - type




             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                           Introduction    Attributes - has
                     Seeing is believing   Roles - with
                                 Mouse     Method Modifiers
                               The End     Other Methods


does - Role




      Let’s talk about Roles later



              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                        Introduction    Attributes - has
                  Seeing is believing   Roles - with
                              Mouse     Method Modifiers
                            The End     Other Methods


required




           sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                       Introduction    Attributes - has
                 Seeing is believing   Roles - with
                             Mouse     Method Modifiers
                           The End     Other Methods


default




          sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                            Introduction    Attributes - has
                      Seeing is believing   Roles - with
                                  Mouse     Method Modifiers
                                The End     Other Methods


predicate and clearer




               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                          Introduction    Attributes - has
                    Seeing is believing   Roles - with
                                Mouse     Method Modifiers
                              The End     Other Methods


Code Reuse



  From S12: Classes are primarily in
  charge of object management, and
  only secondarily in charge of software
  reuse. In Perl 6, roles take over the
  job of managing software reuse.


             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                              Introduction    Attributes - has
                        Seeing is believing   Roles - with
                                    Mouse     Method Modifiers
                                  The End     Other Methods


What’s a Role?


   From S12: Depending on how you
   care to look at it, a role is like a
   partial class, or an interface with
   default implementation, or a set of
   generic methods and their associated
   data, or a class closed at compile
   time.

                 sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                            Introduction    Attributes - has
                      Seeing is believing   Roles - with
                                  Mouse     Method Modifiers
                                The End     Other Methods


use ’with’ to apply Roles




               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                  Introduction    Attributes - has
            Seeing is believing   Roles - with
                        Mouse     Method Modifiers
                      The End     Other Methods




before




     sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                  Introduction    Attributes - has
            Seeing is believing   Roles - with
                        Mouse     Method Modifiers
                      The End     Other Methods




before
after




     sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                  Introduction    Attributes - has
            Seeing is believing   Roles - with
                        Mouse     Method Modifiers
                      The End     Other Methods




before
after
around



     sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
             Introduction    Attributes - has
       Seeing is believing   Roles - with
                   Mouse     Method Modifiers
                 The End     Other Methods




sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
             Introduction    Attributes - has
       Seeing is believing   Roles - with
                   Mouse     Method Modifiers
                 The End     Other Methods




sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                  Introduction    Attributes - has
            Seeing is believing   Roles - with
                        Mouse     Method Modifiers
                      The End     Other Methods




override/super




     sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                  Introduction    Attributes - has
            Seeing is believing   Roles - with
                        Mouse     Method Modifiers
                      The End     Other Methods




override/super
augment/inner




     sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                  Introduction    Attributes - has
            Seeing is believing   Roles - with
                        Mouse     Method Modifiers
                      The End     Other Methods




override/super
augment/inner
...



     sunnavy@bestpractical.com    Mooooooooooooooooose
Outline    Let’s Compare!
                           Introduction    Attributes - has
                     Seeing is believing   Roles - with
                                 Mouse     Method Modifiers
                               The End     Other Methods


an easy way to speed up Moose




              sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                     Introduction    What’s Mouse?
               Seeing is believing   Why?
                           Mouse     Mouse is not enough in future?
                         The End




Mouse is a lightweighted Moose. It
provides a subset of Moose’s
functionality.




        sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                            Introduction    What’s Mouse?
                      Seeing is believing   Why?
                                  Mouse     Mouse is not enough in future?
                                The End


the compile time penalty



   Though significant progress has been
   made over the years, the compile
   time penalty is a non-starter for some
   applications.



               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                               Introduction    What’s Mouse?
                         Seeing is believing   Why?
                                     Mouse     Mouse is not enough in future?
                                   The End


It’s easy to do




              s/Mouse/Moose/g;



                  sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                            Introduction
                      Seeing is believing
                                  Mouse
                                The End


Less is better sometimes




      less code




               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                            Introduction
                      Seeing is believing
                                  Mouse
                                The End


Less is better sometimes




      less code
      less tests




               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                            Introduction
                      Seeing is believing
                                  Mouse
                                The End


Less is better sometimes




      less code
      less tests
      less bugs


               sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing
                                Mouse
                              The End


So. . .




          Let’s Moose from now on



             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                          Introduction
                    Seeing is believing
                                Mouse
                              The End


Until. . .




             Perl 6 is finished



             sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                         Introduction
                   Seeing is believing
                               Mouse
                             The End


More Info




      http://www.iinteractive.com/moose




            sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                         Introduction
                   Seeing is believing
                               Mouse
                             The End


More Info




      http://www.iinteractive.com/moose
      #moose on irc.perl.org



            sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                         Introduction
                   Seeing is believing
                               Mouse
                             The End


More Info




      http://www.iinteractive.com/moose
      #moose on irc.perl.org
      subscribe to moose@perl.org


            sunnavy@bestpractical.com    Mooooooooooooooooose
Outline
                       Introduction
                 Seeing is believing
                             Mouse
                           The End


Thanks!




            Any Questions?



          sunnavy@bestpractical.com    Mooooooooooooooooose

More Related Content

Recently uploaded

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Recently uploaded (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

use Moose talk in beijing workshop 2008

  • 1. Outline Introduction Seeing is believing Mouse The End Mooooooooooooooooose sunnavy@bestpractical.com November 08, 2008 sunnavy@bestpractical.com Mooooooooooooooooose
  • 2. Outline Introduction Seeing is believing Mouse The End Introduction What’s Moose? Seeing is believing Let’s Compare! Attributes - has Roles - with Method Modifiers Other Methods Mouse What’s Mouse? Why? Mouse is not enough in future? The End sunnavy@bestpractical.com Mooooooooooooooooose
  • 3. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose is not NOT a cow sunnavy@bestpractical.com Mooooooooooooooooose
  • 4. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose is not NOT a cow NOT contain any melamine sunnavy@bestpractical.com Mooooooooooooooooose
  • 5. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose is not NOT a cow NOT contain any melamine NOT Perl 6 sunnavy@bestpractical.com Mooooooooooooooooose
  • 6. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose is not NOT a cow NOT contain any melamine NOT Perl 6 NOT just a toy sunnavy@bestpractical.com Mooooooooooooooooose
  • 7. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose is not NOT a cow NOT contain any melamine NOT Perl 6 NOT just a toy NOT a new object system sunnavy@bestpractical.com Mooooooooooooooooose
  • 8. Outline Introduction Seeing is believing What’s Moose? Mouse The End Google knows something about Moose sunnavy@bestpractical.com Mooooooooooooooooose
  • 9. Outline Introduction Seeing is believing What’s Moose? Mouse The End Interested in that animal? Let’s talk about that animal later sunnavy@bestpractical.com Mooooooooooooooooose
  • 10. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose here really is an extension of the existing object system of Perl 5 sunnavy@bestpractical.com Mooooooooooooooooose
  • 11. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose here really is an extension of the existing object system of Perl 5 very much inspired by Perl 6 sunnavy@bestpractical.com Mooooooooooooooooose
  • 12. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose here really is an extension of the existing object system of Perl 5 very much inspired by Perl 6 built on top of Class::MOP( Welcome to Meta world! ) sunnavy@bestpractical.com Mooooooooooooooooose
  • 13. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose here really is an extension of the existing object system of Perl 5 very much inspired by Perl 6 built on top of Class::MOP( Welcome to Meta world! ) postmodern( just like Perl ;) sunnavy@bestpractical.com Mooooooooooooooooose
  • 14. Outline Introduction Seeing is believing What’s Moose? Mouse The End What Moose here really is an extension of the existing object system of Perl 5 very much inspired by Perl 6 built on top of Class::MOP( Welcome to Meta world! ) postmodern( just like Perl ;) ready to use sunnavy@bestpractical.com Mooooooooooooooooose
  • 15. Outline Introduction Seeing is believing What’s Moose? Mouse The End Official Definition Moose is a postmodern object system for Perl 5 that takes the tedium out of writing object-oriented Perl. It borrows all the best features from Perl 6, CLOS (LISP), Smalltalk, Java, BETA, OCaml, Ruby and more, while still keeping true to its Perl 5 roots. sunnavy@bestpractical.com Mooooooooooooooooose
  • 16. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods The Request sunnavy@bestpractical.com Mooooooooooooooooose
  • 17. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods What we normally OOP sunnavy@bestpractical.com Mooooooooooooooooose
  • 18. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods If we have Moose . . . sunnavy@bestpractical.com Mooooooooooooooooose
  • 19. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods You may point out. . . You skipped use strict; and use warnings; on purpose to reduce lines! sunnavy@bestpractical.com Mooooooooooooooooose
  • 20. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods So, I’m telling you. . . Well, I skipped those two lines because Moose does that for me. sunnavy@bestpractical.com Mooooooooooooooooose
  • 21. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods Thanks, Moose! sunnavy@bestpractical.com Mooooooooooooooooose
  • 22. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods use ’has’ to install attributes has $name|@$names => %options sunnavy@bestpractical.com Mooooooooooooooooose
  • 23. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods %options is ( ’ro|rw’ ) sunnavy@bestpractical.com Mooooooooooooooooose
  • 24. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods %options is ( ’ro|rw’ ) isa ( type constraints ) sunnavy@bestpractical.com Mooooooooooooooooose
  • 25. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods %options is ( ’ro|rw’ ) isa ( type constraints ) does ( $role ) sunnavy@bestpractical.com Mooooooooooooooooose
  • 26. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods %options is ( ’ro|rw’ ) isa ( type constraints ) does ( $role ) required ( 1|0 ) sunnavy@bestpractical.com Mooooooooooooooooose
  • 27. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods %options is ( ’ro|rw’ ) isa ( type constraints ) does ( $role ) required ( 1|0 ) default sunnavy@bestpractical.com Mooooooooooooooooose
  • 28. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods %options is ( ’ro|rw’ ) isa ( type constraints ) does ( $role ) required ( 1|0 ) default predicate ( method name to check for initialization ) sunnavy@bestpractical.com Mooooooooooooooooose
  • 29. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods %options is ( ’ro|rw’ ) isa ( type constraints ) does ( $role ) required ( 1|0 ) default predicate ( method name to check for initialization ) clearer ( method name to uninitialize ) sunnavy@bestpractical.com Mooooooooooooooooose
  • 30. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods is ro sunnavy@bestpractical.com Mooooooooooooooooose
  • 31. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods is ro rw sunnavy@bestpractical.com Mooooooooooooooooose
  • 32. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods is sunnavy@bestpractical.com Mooooooooooooooooose
  • 33. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods isa - type sunnavy@bestpractical.com Mooooooooooooooooose
  • 34. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods isa - type sunnavy@bestpractical.com Mooooooooooooooooose
  • 35. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods does - Role Let’s talk about Roles later sunnavy@bestpractical.com Mooooooooooooooooose
  • 36. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods required sunnavy@bestpractical.com Mooooooooooooooooose
  • 37. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods default sunnavy@bestpractical.com Mooooooooooooooooose
  • 38. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods predicate and clearer sunnavy@bestpractical.com Mooooooooooooooooose
  • 39. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods Code Reuse From S12: Classes are primarily in charge of object management, and only secondarily in charge of software reuse. In Perl 6, roles take over the job of managing software reuse. sunnavy@bestpractical.com Mooooooooooooooooose
  • 40. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods What’s a Role? From S12: Depending on how you care to look at it, a role is like a partial class, or an interface with default implementation, or a set of generic methods and their associated data, or a class closed at compile time. sunnavy@bestpractical.com Mooooooooooooooooose
  • 41. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods use ’with’ to apply Roles sunnavy@bestpractical.com Mooooooooooooooooose
  • 42. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods before sunnavy@bestpractical.com Mooooooooooooooooose
  • 43. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods before after sunnavy@bestpractical.com Mooooooooooooooooose
  • 44. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods before after around sunnavy@bestpractical.com Mooooooooooooooooose
  • 45. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods sunnavy@bestpractical.com Mooooooooooooooooose
  • 46. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods sunnavy@bestpractical.com Mooooooooooooooooose
  • 47. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods override/super sunnavy@bestpractical.com Mooooooooooooooooose
  • 48. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods override/super augment/inner sunnavy@bestpractical.com Mooooooooooooooooose
  • 49. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods override/super augment/inner ... sunnavy@bestpractical.com Mooooooooooooooooose
  • 50. Outline Let’s Compare! Introduction Attributes - has Seeing is believing Roles - with Mouse Method Modifiers The End Other Methods an easy way to speed up Moose sunnavy@bestpractical.com Mooooooooooooooooose
  • 51. Outline Introduction What’s Mouse? Seeing is believing Why? Mouse Mouse is not enough in future? The End Mouse is a lightweighted Moose. It provides a subset of Moose’s functionality. sunnavy@bestpractical.com Mooooooooooooooooose
  • 52. Outline Introduction What’s Mouse? Seeing is believing Why? Mouse Mouse is not enough in future? The End the compile time penalty Though significant progress has been made over the years, the compile time penalty is a non-starter for some applications. sunnavy@bestpractical.com Mooooooooooooooooose
  • 53. Outline Introduction What’s Mouse? Seeing is believing Why? Mouse Mouse is not enough in future? The End It’s easy to do s/Mouse/Moose/g; sunnavy@bestpractical.com Mooooooooooooooooose
  • 54. Outline Introduction Seeing is believing Mouse The End Less is better sometimes less code sunnavy@bestpractical.com Mooooooooooooooooose
  • 55. Outline Introduction Seeing is believing Mouse The End Less is better sometimes less code less tests sunnavy@bestpractical.com Mooooooooooooooooose
  • 56. Outline Introduction Seeing is believing Mouse The End Less is better sometimes less code less tests less bugs sunnavy@bestpractical.com Mooooooooooooooooose
  • 57. Outline Introduction Seeing is believing Mouse The End So. . . Let’s Moose from now on sunnavy@bestpractical.com Mooooooooooooooooose
  • 58. Outline Introduction Seeing is believing Mouse The End Until. . . Perl 6 is finished sunnavy@bestpractical.com Mooooooooooooooooose
  • 59. Outline Introduction Seeing is believing Mouse The End More Info http://www.iinteractive.com/moose sunnavy@bestpractical.com Mooooooooooooooooose
  • 60. Outline Introduction Seeing is believing Mouse The End More Info http://www.iinteractive.com/moose #moose on irc.perl.org sunnavy@bestpractical.com Mooooooooooooooooose
  • 61. Outline Introduction Seeing is believing Mouse The End More Info http://www.iinteractive.com/moose #moose on irc.perl.org subscribe to moose@perl.org sunnavy@bestpractical.com Mooooooooooooooooose
  • 62. Outline Introduction Seeing is believing Mouse The End Thanks! Any Questions? sunnavy@bestpractical.com Mooooooooooooooooose