Though I'm making progress (thanks guys) I'm still having a problem
with dereferencing the struct elements. I've re-read the section on
References in Programming Perl and I thought what I was doing was
correct, but I can't print out the values correctly. Here's a
simplified version of what I'm trying to to:
use strict;
use warnings;
use Class::Struct;
struct ( Shoppe => { # Creates a Shoppe->new() constructor.
owner => '$', # Now owner() method accesses a scalar.
addrs => '@', # And addrs() method accesses an array.
stock => '%', # And stock() method accesses a hash.
});
my $store = Shoppe->new();
$store->owner('Abdul Alhazred');
$store->addrs(0, 'Miskatonic University');
$store->addrs(1, 'Innsmouth, Mass.');
$store->stock("books", 208);
$store->stock("charms", 3);
$store->stock("potions", "none");
# prints the reference.
print "addrs: $store->addrs";
# dereference the array and print it out
print "addrs: @{$store->addrs}";
# dreference the the addr array ref and assign it to annother array
and print it out.
my @some_addrs = @{$store->addrs};
print "addrs: @some_addrs";
# Print the hash reference:
print "stock: $store->stock";
# dereference the hash method.
print "stock: %{$store->stock}"; ### <---FAILS! Prints out the
ref again with a % in front...
# What about the scaler reference?
# prints the reference.
print "owner: $store->owner";
# prints ref
# you want print "owner: ", $store->owner";
my $owner = $store->owner; ## This works.
print "owner: $owner";
# but how do you print the store owner directly? The following fails!
print "owner:, ${$store->owner}";
Thanks in advance,
Ed
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>