On Tuesday, September 30, 2003, at 06:01 PM, [EMAIL PROTECTED] wrote:
Can someone make this work like I want? I'm trying to create a package
USER and reference/change it. The only thing I'm able to do is to call the
sub prtAll. I just want a structure that I can pass around in perl.
test.pl -------
Good code starts with the following, I promise.
use strict; use warnings;
use USER;
Let's drop the all caps here. Perl tradition is class names in titlecase. The name could also be more descriptive. What kind of user?
use User;
#this does NOT work #how do i reference these vars USER::fname="bob"; USER::lname="Bingham";
It doesn't work because you forgot the special variable symbols.
$User::fname = 'bob'; $User::lname = 'Bingham';
However, objects would probably be better here, so let's try:
my $user = User->new(f_name => 'bob', l_name => 'Bingham');
print USER::prt . "\n";
print $user->full_name(), "\n";
USER.pm
User.pm
------- package USER;
package User;
use strict; use warnings;
$fname; $lname;
These would need to use our(), under strict:
our($fname, $lname);
But we don't need them.
sub new { my $class = shift; my $self = { f_name => 'John', l_name => 'Doe', @_ }; return bless $self, $class; }
sub full_name { my $self = shift; return $self->{f_name} . ' ' . $self->{l_name}; }
That's very basic object oriented programming, tell me if you need parts of it explained.
James
sub prtAll { ... }
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]