4
내가 스칼라 (숫자)의 메소드를 호출하는 코드, 같은 것을 보았다어떻게 Perl 스칼라에서 메서드를 호출 할 수 있습니까?
print 42->is_odd
무엇 당신은 당신이 당신의 코드에서 "기능"이런 종류의를 달성 할 수 있도록 과부하해야합니까?
내가 스칼라 (숫자)의 메소드를 호출하는 코드, 같은 것을 보았다어떻게 Perl 스칼라에서 메서드를 호출 할 수 있습니까?
print 42->is_odd
무엇 당신은 당신이 당신의 코드에서 "기능"이런 종류의를 달성 할 수 있도록 과부하해야합니까?
autobox을 언급하셨습니까? Should I use autobox in Perl?도 참조하십시오.
이것은 자동 폭 기능을 사용한 예입니다.
#!/usr/bin/perl
use strict;
use warnings;
package MyInt;
sub is_odd {
my $int = shift;
return ($int%2);
}
package main;
use autobox INTEGER => 'MyInt';
print "42: ".42->is_odd."\n";
print "43: ".43->is_odd."\n";
print "44: ".44->is_odd."\n";
내가 알아 차 렸던 하나의 모듈입니다. 다른 하나는'scalar :: object' 일 수 있습니다. 나는'autoload'가 XS를 사용하고'scalar :: object'가 XS를 사용한다는 것을 알았습니다. 나는'scalar :: object'가 그 일을하는 방식에 좀 더 관심이 있습니다. 저수준 프로그래밍에 의지하지 않고이 작업을 수행 할 수 있는지 궁금합니다. – Geo
'scalar :: object'는'overload :: constant'와 다른'overload' 마법을 사용하지만,'autobox'와 거의 같은 힘을 갖지 않습니다. 'autobox'는'-> foo()'메소드 호출 연산자 자체의 구현에 연결하여 작동합니다. – hobbs
autobox는 확실히 이런 종류의 기능을 수행하는 방법입니다. – tsee