Forums
New posts
Search forums
Members
Current visitors
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Forums
Archive
Archive
Perl
Perl Misc
multiple packages/classes in one file
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Reply to thread
Message
[QUOTE="ioneabu, post: 4779771"] Thanks! I did some reading on 'our' and it makes sense. It makes it so you can use globals under strict and not just lexicals. By global, this means global to the package that our is used in. I fixed up my OO example: #!/usr/bin/perl use warnings; use strict; my $a = one->new; my $b = two->new; $a->set_member(11); $b->set_member(21); print $a->get_member,"\n"; print $b->get_member,"\n"; #class one package one; our $member; sub new { my $class = shift; my $self = {}; $member = 10; bless($self, $class); return $self; } sub set_member { my $self = shift; $member = shift; } sub get_member { return $member; } #class two package two; our $member; sub new { my $class = shift; my $self = {}; $member = 20; bless($self, $class); return $self; } sub set_member { my $self = shift; $member = shift; } sub get_member { return $member; } I found that if I set the value for the $member variable where it is declared, I got an error for trying to print an uninitialized value. When I set the default value in the constructor (assuming I don't use set_member to change it) it works fine. I was wondering why it didn't work, although I do see the sense in setting an object's default values in the constructor. Here is the erroneous code I had before: .... #class one package one; our $member = 10; #Perl didn't accept me setting my default value here. sub new { my $class = shift; my $self = {}; bless($self, $class); return $self; } .... wana (if my indenting disappears, it's Google!) [/QUOTE]
Verification
Post reply
Forums
Archive
Archive
Perl
Perl Misc
multiple packages/classes in one file
Top