+ const char * const classname =
+ sv_isobject(ST(0)) /* get the class if called as an object method */
+ ? HvNAME(SvSTASH(SvRV(ST(0))))
+ : (char *)SvPV_nolen(ST(0));
+
+ if ( items == 1 ) {
+ /* no parameter provided */
+ if ( sv_isobject(ST(0)) ) {
+ /* copy existing object */
+ vs = ST(0);
+ }
+ else {
+ /* create empty object */
+ vs = sv_newmortal();
+ sv_setpvn(vs,"",0);
+ }
+ }
+ else if ( items == 3 ) {
+ vs = sv_newmortal();
+ Perl_sv_setpvf(aTHX_ vs,"v%s",SvPV_nolen_const(ST(2)));