package MozRepl::RemoteObject; sub new { my ($class, $id) = @_; my $self = { id => $id, }; bless $self, $class; }; sub expr { my ($class, $js) = @_; return $class->new( javascript_eval($js)); # assuming that it returns an object };