ソースの書き直し



Java(など)は、構造を持ったデータを格納するのに便利だ。Perl(など)に書き直すときに、この構造を移転するには、perlのリファレンスを用いる。

今、Javaのクラスで


int v1;
int[] v2;
String[] v3;

なるデータを格納したクラスがあるとする。

これに対応した「オブジェクト」をPerlで作るにはのようにする。

汎用性を上げるには、すべてのデータ要素を同一次元のリスト(上の例で言えば、スカラーと1次元リストが混在しているが、これを、すべて1次元リストにする)で行う方が(おそらく)たいていの場合は、便利。


main(@ARGV);
exit;
sub main(@){
my ($input)=@_;
my $dataset = MakeDataset($input);
}
sub MakeDataset{
my ($input)=@_;
open(IN, $input);
my @array = <IN>;
close(IN);
my $v1 = MakeV1(@array);
my @v2 = MakeV2(@array);
my @v3 = MakeV3(@array);

my @data = ($v1,\@v2,\@v3);
my $ref = \@data;
return $ref;
}
#ただし、MakeV1,MakeV2,MakeV3は入力ファイル$inputから作られた@arrayから適宜作成するようなサブルーチンであるとする

参考にしたウェブ記事はこちら