나는 내가 이런 것을 할 수있는 읽을 때마다 증가하는 간단한 연결 스칼라 클래스를 가지고 있다면 : 생성자 묶여 스칼라
package Counter;
use strict;
use warnings;
sub TIESCALAR {
my $class = shift;
my $value = 0;
bless \$value, $class;
return \$value;
}
sub FETCH {
my $self = shift;
my $value = $$self;
$$self++;
return $value;
}
sub STORE {
my $self = shift;
$$self = shift;
}
1;
그러나 나는
tie
를 사용해야하는 카운터 변수를 만들 수 있습니다. 하나의 카운터를 만들어서 내보낼 수 있습니다. 하지만 내가 정말로하고 싶은 것은 그것이 OO로 보이게 만드는 것입니다. 다음
sub new {
my $class = shift;
my $counter;
tie $counter, $class;
return $counter;
}
내 주요 스크립트에서 수행하여 두 개의 카운터를 얻을 : 나는 넥타이 '아무튼 때문에이 작동하지 않는 가정입니다
my $counter1 = Counter->new();
my $counter2 = Counter->new();
을 내가 이런 new
방법을 만들 수 있다는 것 복사본에서 생존 할 수 없다. (나는 어딘가에서 그것을 읽었다.) 단순히 이것을 할 방법이 없는가?
NB. 나는 그것이 스타일의 문제 일 뿐이라는 것을 알고 있지만, 눈에 더 정확하게 보일 것입니다.
멋진 답변을 보내 주셔서 감사합니다. –
또한'@ _ '의 엘리먼트가 별칭이고 그것이 어떻게 다른지 알 수 있습니다. 별칭이 언급 된 곳을 보았지만 왜 중요해야하는지 생각할 수 없었습니다. 감사! –