読者です 読者をやめる 読者になる 読者になる

swig を触ってみた

swig を触ってみた

C のモジュールを perl から呼び出す必要に迫られたため swig を触ってみた

https://www.codebreak.com/git/laughing/myswigsample/

本当は map(string, double) を perl のハッシュで扱いたかったのだが,
コードをみてもよくわからなかったので,
サンプルがあった map(string, string) をハッシュで扱う方法(ref:http://stackoverflow.com/questions/11157157/stl-map-in-perl-using-swig/12543341 ) で
なんとかした

イケてないので,どうにか map(string, double) とハッシュを対応付けできるようにしたい...

追記

map(string, string) を map(string, double) に置換して,
一部 string から double に型変換したらいけた

use strict;
use warnings;
use utf8;

use Data::Dumper;

use Hoge;

my $s = "abc";
my $o = Hoge::Hoge->new($s);
print $o->printConfPath() . "\n";

$s = "hoge";
my $h = $o->generateMapWrap($s);
print Dumper($h);
foreach (keys %$h) {
    print join("\t", $_, $h->{$_}) . "\n";
}

% perl main.pl
abc
$VAR1 = bless( {
                 'fuga' => '2',
                 'hoge' => '1'
               }, 'Hoge::StringDoubleMap' );
fuga    2
hoge    1

こう

追記2

perl なので,文字列として数値格納してても,扱う上で変化ない気がする
ので,参考にしたサンプルのままで良くて,それに合うような wrapper メソッドを書けば良いっぽい