Yes, you can. Most of the time, class is just a blessed hash or array. One thing worth to mention is that, when you pass a list of object, always pass the reference, as most of the time, they are reference already, just don't de-ref them. Otherwise, Perl will concat them into one big list. The following is a simple demon of this:
aclass.pm:
package aclass;
use strict;
sub new {
my $self = {};
$self->{"first"} = shift;
$self->{"second"} = shift;
bless $self;
return $self;
}
1;
a.pl:
use aclass;
use strict;
sub display {
my $a = shift;
my $b = shift;
print "a = $a, b = $b\n";
}
$a = new aclass(1, 2);
$b = new aclass(3, 4);
display($a, $b);
display(%{$a}, %{$b});
the first display does what you want, the second does not. This is a caution not just for object, but any time you pass list of aggregations.