#CLOSE
######

SV*
close(fd)
	SV* fd;

	INIT:
		int ret;

	CODE:
    if(SvOK(fd) && SvIOK(fd)){
      ret=close(SvIV(fd));
      if(ret<0){
        RETVAL=&PL_sv_undef;
      }
      else{
        //close returns 0 on success.. which is false in perl 
        //so increment
        RETVAL=newSViv(ret+1);
      }
    }
    else {
      errno=EBADF;
      RETVAL=&PL_sv_undef;
      Perl_warn(aTHX_ "%s", "IO::FD::close called with something other than a file descriptor");
    }
	OUTPUT:
		RETVAL