This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add the URL for annotated svn of S03.
[perl5.git] / pod / perlboot.pod
index bd39c44..55317c3 100644 (file)
@@ -26,7 +26,7 @@ Let's let the animals talk for a moment:
       print "a Horse goes neigh!\n";
     }
     sub Sheep::speak {
-      print "a Sheep goes baaaah!\n"
+      print "a Sheep goes baaaah!\n";
     }
 
     Cow::speak;
@@ -106,7 +106,7 @@ example:
       print "a Horse goes neigh!\n";
     }
     sub Sheep::speak {
-      print "a Sheep goes baaaah!\n"
+      print "a Sheep goes baaaah!\n";
     }
 
     @pasture = qw(Cow Cow Horse Sheep Sheep);
@@ -172,7 +172,7 @@ This method provides the constant text for the sound itself.
       sub sound { "moooo" }
       sub speak {
        my $class = shift;
-       print "a $class goes ", $class->sound, "!\n"
+       print "a $class goes ", $class->sound, "!\n";
       }
     }
 
@@ -184,7 +184,7 @@ returns C<moooo>.  But how different would this be for the C<Horse>?
       sub sound { "neigh" }
       sub speak {
        my $class = shift;
-       print "a $class goes ", $class->sound, "!\n"
+       print "a $class goes ", $class->sound, "!\n";
       }
     }
 
@@ -200,7 +200,7 @@ definition for C<speak>:
     { package Animal;
       sub speak {
        my $class = shift;
-       print "a $class goes ", $class->sound, "!\n"
+       print "a $class goes ", $class->sound, "!\n";
       }
     }
 
@@ -253,6 +253,11 @@ The easiest is to just spell the package name out:
 
     @Cow::ISA = qw(Animal);
 
+Or declare it as package global variable:
+
+    package Cow;
+    our @ISA = qw(Animal);
+
 Or allow it as an implicitly named package variable:
 
     package Cow;
@@ -336,7 +341,7 @@ subroutine.
 
 Also note that the C<Animal> classname is now hardwired into the
 subroutine selection.  This is a mess if someone maintains the code,
-changing C<@ISA> for <Mouse> and didn't notice C<Animal> there in
+changing C<@ISA> for C<Mouse> and didn't notice C<Animal> there in
 C<speak>.  So, this is probably not the right way to go.
 
 =head2 Starting the search from a different place
@@ -423,7 +428,7 @@ and the C<Horse> class:
   { package Animal;
     sub speak {
       my $class = shift;
-      print "a $class goes ", $class->sound, "!\n"
+      print "a $class goes ", $class->sound, "!\n";
     }
   }
   { package Horse;
@@ -574,7 +579,7 @@ C<Animal>, so let's put it there:
   { package Animal;
     sub speak {
       my $class = shift;
-      print "a $class goes ", $class->sound, "!\n"
+      print "a $class goes ", $class->sound, "!\n";
     }
     sub name {
       my $self = shift;
@@ -610,7 +615,7 @@ shows up as we saw it just now.
 All we need is for a method to detect if it is being called on a class
 or called on an instance.  The most straightforward way is with the
 C<ref> operator.  This returns a string (the classname) when used on a
-blessed reference, and C<undef> when used on a string (like a
+blessed reference, and an empty string when used on a string (like a
 classname).  Let's modify the C<name> method first to notice the change:
 
   sub name {