Cool! Re-writing the guts of
SetDualVar using
Inline, it looks like:
#!/usr/bin/perl -w
# Solution by Kenneth Albanowski <kjahds@kjahds.com>
# from the module SetDualVar-1.0.tar.gz
# re-written using Inline.
use strict;
use Inline 'C';
my $v;
set_both($v, "I'm a string too!", 123);
print $v+0, " $v\n";
__END__
__C__
void set_both(SV* variable, SV* string, SV* numeric)
{
SvPV(string, PL_na);
if(!SvPOKp(string) || (!SvNOKp(numeric) && !SvIOKp(numeric)) ) {
croak("Usage: set_both variable,string,numeric");
}
sv_setsv(variable,string);
if(SvNOKp(numeric)) {
sv_setnv(variable,SvNV(numeric));
} else {
sv_setiv(variable,SvIV(numeric));
}
SvPOK_on(variable);
}