*
* Copyright (C) 2003 Merjis Ltd.
*
- * $Id: perl.mli,v 1.2 2003-10-12 10:52:00 rich Exp $
+ * $Id: perl.mli,v 1.3 2003-10-12 11:56:26 rich Exp $
*)
type t
(** Convert a Perl [SV] into a string. *)
external sv_of_string : string -> sv = "perl4caml_sv_of_string"
(** Convert a [string] into a Perl [SV]. *)
+external sv_is_true : sv -> bool = "perl4caml_sv_is_true"
+(** Return [true] if the [SV] is "true" (in the Perl sense of truth). *)
+external sv_is_undef : sv -> bool = "perl4caml_sv_is_undef"
+(** Return [true] if the [SV] is undefined (is [undef]). *)
+val sv_undef : sv
+(** Returns [undef]. *)
+val sv_true : sv
+(** Returns an [SV] which is true. *)
+val sv_false : sv
+(** Returns an [SV] which is false. *)
external get_sv : ?create:bool -> string -> sv = "perl4caml_get_sv"
(** Return a scalar value by name. For example, if you have a symbol
(** This is exactly like the Perl [eval] command. It evaluates a piece of
* Perl code (in scalar context) and returns the result (a Perl [SV]).
*)
+
+external call_method : sv -> string -> sv list -> sv
+ = "perl4caml_call_method"
+(** [call_method obj name [parameters]] calls the method [name] on the Perl
+ * object [obj] with the given parameters, in a scalar context. Thus this
+ * is equivalent to [$obj->name (parameters)].
+ *
+ * Returns the Perl [SV] containing the result value.
+ *
+ * If the method calls [die] then this will throw [Perl_failure].
+ *)
+
+external call_method_array : sv -> string -> sv list -> sv list
+ = "perl4caml_call_method_array"
+(** Like [call_method], but the method is called in an array context. *)
+
+external call_method_void : sv -> string -> sv list -> unit
+ = "perl4caml_call_method_void"
+(** Like [call_method], but the method is called in a void context (results
+ * are discarded). *)
+
+external call_class_method : string -> string -> sv list -> sv
+ = "perl4caml_call_class_method"
+(** [call_class_method classname name [parameters]] calls the static method
+ * [name] in the Perl class [classname] with the given parameters, in a
+ * scalar context. Thus this is equivalent to [$classname->name (parameters)].
+ *
+ * Returns the Perl [SV] containing the result value.
+ *
+ * If the static method calls [die] then this will throw [Perl_failure].
+ *)
+
+external call_class_method_array : string -> string -> sv list -> sv list
+ = "perl4caml_call_class_method_array"
+(** Like [call_class_method], but the method is called in an array context. *)
+
+external call_class_method_void : string -> string -> sv list -> unit
+ = "perl4caml_call_class_method_void"
+(** Like [call_class_method], but the method is called in a void context. *)