note
tkguifan
You misunderstand my question.
Here $self is a proper object, blessed. It seemed not too enlightening to list the new function of the object ( it is well known how to do it ).
However here it is in full detail:
<code>
Package MyObject;
sub new
{
my $self={
hash_ref=>{key1=>'value1',key2=>'value2'}
};
bless $self;
return $self;
}
#global variable to access $self
my $sort_self;
sub byvalue
{
$sort_self->{hash_ref}->{$a}<=>$sort_self->{hash_ref}->{$b};
}
sub sort_hash_ref_keys_by_value
{
my $self=shift;
#set global variable by hand
$sort_self=$self;
#now the cmp function knows the object
my @keys_sorted_by_value=sort byvalue keys(%{$self->{hash_ref}});
}
Packahe Main;
my $myobject=new MyObject;
$myobject->sort_hash_ref_keys_by_value;
</code>
I want more than simply sorting the keys. Based on the keys I have to look up something within the object based on which I can sort the keys. For this I have to access the object's variables.
Currently I create a global variable called $sort_self and I set this manually before calling the user defined cmp function byvalue, but this seems very unelegant.
1114750
1114767