Skalar und Array an eine Klasse binden
Dimitri Rettig
- perl
Hallo,
ich habe eine Klasse. Sie enthält einge Skalare sowie ein Array. Ich
will vermittels tie ein Skalar sowie ein Array an die Klasse
binden. Ein Skalar zu binden ist ja nicht allzu schwer. Hier
das Wesentliche in vereinfachter Form:
package MyClass;
use strict;
use warnings;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(new);
sub new {
my $class = shift;
my $a = shift;
my $b = shift;
tie(my $ret, $class, $a, $b);
return $ret;
}
sub TIESCALAR {
my $class = shift;
my $a = shift;
my $b = shift;
my %self = (a => $a, b => $b);
return bless %self, $class;
}
sub FETCH {
my $self = shift;
return $self->{a}.$self->{b};
}
dann könnte man z. B. aufrufen:
my $obj = MyClass->new("IRGENDEIN", "TEXT");
print "$obj";
gibt aus: IRGENDEINTEXT
ich will erreichen, dass
my *foo = MyClass->new("IRGENDEIN", "TEXT");
dazu führt, dass sowohl $foo als auch @foo an die gleiche Klasse (Objekt)
gebunden sind. Ich sehe aber keine Möglichkeit, wie ich mein Vorhaben
umsetzen kann. Es fängt schon damit an, dass ich irgendwie zwei
FETCH-Methoden, eine für $foo und eine für @foo, in einer Klasse
unterbringen soll.
Mit freundlichen Grüßen
Dimitri Rettig