--- /dev/null
+(* Reference, dereference.
+ * $Id: 140-ref.ml,v 1.1 2005-01-28 23:09:33 rich Exp $
+ *)
+
+open Perl
+
+let () =
+ let sv = sv_of_int 42 in
+ let sv = scalarref sv in
+ assert (sv_type sv = SVt_RV);
+ let sv = deref sv in
+ assert (42 = int_of_sv sv);
+
+ let av = av_of_string_list [ "foo"; "bar" ] in
+ let sv = arrayref av in
+ assert (sv_type sv = SVt_RV);
+ let av = deref_array sv in
+ assert (2 = av_length av);
+
+ let hv = hv_empty () in
+ hv_set hv "foo" (sv_of_int 1);
+ hv_set hv "bar" (sv_of_int 2);
+ let sv = hashref hv in
+ assert (sv_type sv = SVt_RV);
+ let hv = deref_hash sv in
+ assert (1 = int_of_sv (hv_get hv "foo"));
+ assert (2 = int_of_sv (hv_get hv "bar"));
+;;
+
+Gc.full_major ()