私はネクタイについて学び始めたばかりです。次のことをしたい Link という名前のクラスがあります。
- 取得した場合は、リンクのアドレスを返します
- 保存されている場合は、新しいアドレスを保存します
- その上でメソッドを呼び出すことができます
これまでのところ、私のコードは次のとおりです。
package Link;
sub FETCH {
my $this = shift;
return $this->{"site"};
}
sub STORE {
my ($self,$site) = @_;
$self->{"site"} = $site;
}
sub print_method {
my $self = shift;
print $self->{"site"};
}
sub TIESCALAR {
my $class = shift;
my $link = shift;
my $this = {};
bless($this,$class);
$this->{"site"} = $link;
return $this;
}
1;
機能を確認するために使用しているコードは次のとおりです。
use Link;
tie my $var,"Link","http://somesite.com";
$var->print_method;
実行すると、スクリプトは次のエラーで終了し ます。
そのメッセージを正しく理解すれば$var->print_method
、メソッドprint_method
が呼び出される文字列に解決されます。どのようにネクタイの恩恵を受けることができますか?また、変数をオブジェクトとして使用することもできますか?
編集:少し実験した後、フェッチで $self を返すと、メソッドを呼び出すことができますが、フェッチはアドレスを返さないことがわかりました。
編集 2: perl 僧侶が解決策を提供してくれました:結ばれました。tie はオブジェクト VARIABLE への参照を返します。
自分のメソッドと結びつけることで、やりたいことはすべて成し遂げることができます。