$var = ($type)SvPV_nolen($arg)
####
if (SvOK($arg))
$var = ($type)SvPV_nolen($arg);
else
$var = INT2PTR($type,SvIV($arg))
####
INPUT
T_PV
if (SvOK($arg))
$var = ($type)SvPV_nolen($arg);
else
$var = INT2PTR($type,SvIV($arg))
####
use strict;
use warnings;
use Devel::Peek;
use Inline C => Config =>
BUILD_NOISY => 1, # verbose build
FORCE_BUILD => 1, # re-build whenever the script is run
CLEAN_AFTER_BUILD => 0, # don't clean up the build directory
;
use Inline C =><<'EOC';
unsigned char * foo(unsigned char *name) {
if(name) printf("name is: %s\n", name);
else printf("NULL input (undef) was detected\n");
return(name);
}
EOC
my $x = foo(undef);
Dump($x);
my $y = foo("hello world");
Dump($y);
my $z = foo('');
Dump $z;