私は徐々にJava(クライアント要求ごとに)に変換する必要があるOO Perlコードの大きなモノリシックな本体を継承しました。私は両方の言語を知っていますが、Perlのスキルには錆びています。皆さんが痛みを和らげるために推奨できるツール(Eclipseプラグイン)はありますか?OO PerlをJavaに変換するにはどうすればよいですか?
答えて
PLEACは、最も優れたリソースの1つです。
OOコードはMooseを使用していますか?そうであれば、イントロスペクションを使用してクラス宣言を自動的に変換することができます。
徐々にPerlをJavaに変換するには、PerlプログラムにJavaコードをInline::Javaで含めることができます。
Perl on JVM projectがあります。PerlをJavaにコンパイルするために使用できますか?
inccode.comは、自動的にperlコードをjavaコードに変換します。それにもかかわらず、perl変数の変換はperlの動的な型付けのためにややこしい。 perlのスカラー変数には任意の型への参照を含めることができ、実際に参照される型はコードの実行時に認識されます。
Translatorは、Perlモジュールへの参照をカプセル化するために、すべての定義済みの型:ref(HASH)、ref(ARRAY)、BoxModuleをカプセル化するためにVarBoxクラスを使用します。
"hello world"を印刷する2つのモジュールを呼び出すshow perlスクリプトの例です。モジュールLibConsoleはスクリプトでインスタンス化され、モジュールLibPrinterは、LibConsoleでメソッドを呼び出すことによってアクセスされます。
#!/usr/bin/perl
use strict;
use test::LibPrinter;
use test::LibConsole;
hello_on_console("hello world");
hello_on_printer("hello world");
sub get_console
{
my $console = test::LibConsole->new();
return $console;
}
sub get_printer
{
#@cast(module="test::LibPrinter")
my $printer = get_console()->get_printer();
return $printer;
}
sub hello_on_console
{
my ($hello) = @_;
my $console = get_console();
$console->output ($hello);
}
sub hello_on_printer
{
my ($hello) = @_;
my $printer= get_printer();
$printer->output ($hello);
}
翻訳は、両方のモジュールの今のタイプなければならないとPerlはメソッドがモジュールへの参照を返す「新しい」という名前という前提がありますオブジェクトを宣言するため、特定の演算子を定義していないながら。モジュールへの参照を返すメソッドの名前が他に指定されている場合、注釈キャスト(module = "{class}")を使用してモジュールのタイプについてトランスレータに通知できます。
トランスレータが代入の型の適合を制御するため、識別された型の変数が伝播します。
public class hello extends CRoutineProcess implements IInProcess
{
VarBox call()
{
hello_on_console("hello world");
return hello_on_printer("hello world");
}
BoxModule<LibConsole> get_console()
{
BoxModule<LibConsole> varConsole = new BoxModule<LibConsole>(LibConsole.apply());
return varConsole;
}
BoxModule<test.LibPrinter> get_printer()
{
BoxModule<LibPrinter> varPrinter = new BoxModule<LibPrinter>(get_console().getModule().get_printer());
return varPrinter;
}
VarBox hello_on_console (VarBox varHello)
{
BoxModule<LibConsole> varConsole = new BoxModule<LibConsole>(get_console());
return varConsole.getModule().output(varHello);
}
VarBox hello_on_printer (VarBox varHello)
{
BoxModule<LibPrinter> varPrinter = new BoxModule<LibPrinter>(get_printer());
return varPrinter.getModule().output(varHello);
}
}
翻訳されたコードでは、実行時ライブラリを実行する必要があります。
- 1. Perlで入力ファイルをUTF-8エンコーディングに変換するにはどうすればよいですか?
- 2. 4文字をPerlで32ビットIEEE-754 floatに変換するにはどうすればよいですか?
- 3. Perlを使用してHTMLをPDFに変換するにはどうすればよいですか?
- 4. Java Deque <T>をDefaultListModelに変換するにはどうすればよいですか?
- 5. Perlサブの戻り値を配列参照に変換するにはどうすればよいですか?
- 6. Perlのパック 'Nc *'形式をPythonのstruct.packに変換するにはどうすればよいですか?
- 7. Java SQLクエリをJava Object [] []に変換するにはどうすればよいですか?
- 8. Javaイテレータのようなオブジェクトをクロージャシーケンスに変換するにはどうすればいいですか
- 9. Lucene.Net:MultiFiledQueryParserをBooleanQueryに変換するにはどうすればよいですか?
- 10. ハッシュタグテキストをハッシュタグハイパーリンクに変換するにはどうすればよいですか?
- 11. CodeVariableDeclarationStatementをCodeAssignmentStatementに変換するにはどうすればよいですか?
- 12. intをNSStringに変換するにはどうすればよいですか?
- 13. wchar_t *をwstringに変換するにはどうすればよいですか?
- 14. TDateTimeをFILETIMEに変換するにはどうすればよいですか?
- 15. StreamWriterをストリームに変換するにはどうすればよいですか?
- 16. string []をArrayListに変換するにはどうすればよいですか?
- 17. SqlXmlをXmlTextに変換するにはどうすればよいですか?
- 18. byte []をBitmapに変換するにはどうすればよいですか?
- 19. キャンバスコンテンツをイメージに変換するにはどうすればよいですか?
- 20. IntPtrをストリームに変換するにはどうすればよいですか?
- 21. オーディオをテキストに変換するにはどうすればよいですか?
- 22. char *をdouble *に変換するにはどうすればよいですか?
- 23. wavrecordをaudiorecorderに変換するにはどうすればよいですか?
- 24. バイトをmbに変換するにはどうすればよいですか?
- 25. SYS_GUID()をvarcharに変換するにはどうすればよいですか?
- 26. StringReaderをStringに変換するにはどうすればよいですか?
- 27. NSStringをNSDateに変換するにはどうすればよいですか?
- 28. java.util.Dateをorg.joda.time.DateTimeに変換するにはどうすればよいですか?
- 29. ベクトルをスカラーに変換するにはどうすればよいですか?
- 30. completablefutureをRxjavaに変換するにはどうすればよいですか?
inccode.comは利用できませんこれは他のどこかで見つけられますか? – Kai
これに関するアップデートはありますか? –
@Kaiニュースはありますか?そのサイトはもうなくなりました(今は別のものです) –