А вот такой вопрос, кто-нибудь тут Перл и Си скрещивал? Интересует вопрос о том, чтобы сделать на Си реализацию перловых объектов. Чего-то я маны читал, так и не нашел. Как минимум, чтоб конструктор мог вернуть некий токен (который содержит указатель), который нельзя было бы случайно испортить, и который потом можно было бы передавать другим методам. Пока что из манов вырисовывается перловая обертка над обычными сишными функциями, типа:
Для пущей надежности можно еще ссылку упрятать в closure, которое и возвращать в качестве self, но при дальнейшем размышлении оно выглядит как-то избыточным.
Но может как-то более напрямую можно сделать?
package COjbect; use cobject; sub new # (class, args...) { my $class = shift; my $self = \&cobject_new(@_); bless($self, $class); return $self; }; sub DESTROY # (self) { my $self = shift; &cobject_destroy($$self); }; sub method # (self, args...) { my $self = shift; &cobject_method($$self, @_); }
Для пущей надежности можно еще ссылку упрятать в closure, которое и возвращать в качестве self, но при дальнейшем размышлении оно выглядит как-то избыточным.
Но может как-то более напрямую можно сделать?