summaryrefslogtreecommitdiff
path: root/pod/perltoot.pod
diff options
context:
space:
mode:
authorLarry Wall <larry@wall.org>1999-09-24 14:59:37 -0700
committerGurusamy Sarathy <gsar@cpan.org>1999-09-25 06:44:47 +0000
commit77ca0c92d2c0e47301d906d355d9ab3afb6f6bcb (patch)
treeb60e0c33e2b10b0977fb99fb6da0dcad45134146 /pod/perltoot.pod
parent84e30d1a3b7cc368d7f93dd2b009e9fd64756759 (diff)
downloadperl-77ca0c92d2c0e47301d906d355d9ab3afb6f6bcb.tar.gz
Re: [PATCH 5.005_61] "our" declarations
Message-Id: <199909250459.VAA27506@kiev.wall.org> p4raw-id: //depot/perl@4227
Diffstat (limited to 'pod/perltoot.pod')
-rw-r--r--pod/perltoot.pod29
1 files changed, 13 insertions, 16 deletions
diff --git a/pod/perltoot.pod b/pod/perltoot.pod
index 89e5cbe993..3062f5924d 100644
--- a/pod/perltoot.pod
+++ b/pod/perltoot.pod
@@ -1124,8 +1124,7 @@ it happens when you say
If you wanted to add version checking to your Person class explained
above, just add this to Person.pm:
- use vars qw($VERSION);
- $VERSION = '1.1';
+ our $VERSION = '1.1';
and then in Employee.pm could you can say
@@ -1363,7 +1362,7 @@ constructor will look like when taking this approach:
package Person;
use Carp;
- use vars qw($AUTOLOAD); # it's a package global
+ our $AUTOLOAD; # it's a package global
my %fields = (
name => undef,
@@ -1433,8 +1432,7 @@ Here's how to be careful:
package Employee;
use Person;
use strict;
- use vars qw(@ISA);
- @ISA = qw(Person);
+ our @ISA = qw(Person);
my %fields = (
id => undef,
@@ -1560,16 +1558,15 @@ Here's the whole implementation:
BEGIN {
use Exporter ();
- use vars qw(@EXPORT @EXPORT_OK %EXPORT_TAGS);
- @EXPORT = qw(gethostbyname gethostbyaddr gethost);
- @EXPORT_OK = qw(
- $h_name @h_aliases
- $h_addrtype $h_length
- @h_addr_list $h_addr
- );
- %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
+ our @EXPORT = qw(gethostbyname gethostbyaddr gethost);
+ our @EXPORT_OK = qw(
+ $h_name @h_aliases
+ $h_addrtype $h_length
+ @h_addr_list $h_addr
+ );
+ our %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
}
- use vars @EXPORT_OK;
+ our @EXPORT_OK;
# Class::Struct forbids use of @ISA
sub import { goto &Exporter::import }
@@ -1661,7 +1658,7 @@ update value fields in the hash. Convenient, eh?
}
use Alias qw(attr);
- use vars qw($NAME $AGE $PEERS);
+ our ($NAME, $AGE, $PEERS);
sub name {
my $self = attr shift;
@@ -1692,7 +1689,7 @@ update value fields in the hash. Convenient, eh?
return ++$AGE;
}
-The need for the C<use vars> declaration is because what Alias does
+The need for the C<our> declaration is because what Alias does
is play with package globals with the same name as the fields. To use
globals while C<use strict> is in effect, you have to predeclare them.
These package variables are localized to the block enclosing the attr()