Я унаследовал большое монолитное тело OO Perl-кода, которое необходимо постепенно преобразовать в Java (по запросу клиента). Я знаю оба языка, но я ржавый на своих навыках Perl. Существуют ли какие-либо инструменты (плагины Eclipse?), Которые вы, люди, можете рекомендовать для облегчения боли?Как конвертировать OO Perl в Java?
ответ
Я бы сказал, что PLEAC - один из самых больших ресурсов.
Использует ли код OO Moose? Если да, можно автоматически конвертировать объявления классов, используя интроспекцию.
Чтобы постепенно преобразовать Perl в Java, вы можете включить Java-код в программу Perl с помощью Inline::Java.
Есть Perl on JVM project, может быть, он может быть использован для компиляции Perl на Java?
inccode.com позволяет автоматически конвертировать код perl в java-код. Тем не менее преобразование perl-переменных несколько сложно из-за динамического набора текста в perl. Скалярная переменная в perl может содержать ссылку на любой тип, а реальный ссылочный тип известен при выполнении кода.
Переводчик использует класс VarBox для инкапсуляции всех предопределенных типов: ref (HASH), ref (ARRAY) и BoxModule для инкапсуляции ссылки на Perl-модули.
Пример show perl script, который вызывает два модуля для печати «hello world». Модуль 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 oo динамические методы
- 2. Атрибуты класса псевдонима OO-Perl
- 3. OO Design Patterns with Perl
- 4. Perl OO - Создание списка объектов
- 5. Как установить RRDTool :: OO на Strawberry perl
- 6. Perl 5 - оценка кода OO в строке
- 7. Понимание Java OO
- 8. Есть ли эквивалент OO Perl для интерфейса?
- 9. Как проверить undefined ключ в perl OO-коде?
- 10. Как читать STDOUT из подпроцесса в OO Perl
- 11. Perl конвертировать XLS в XML
- 12. Как конвертировать эпоху в UTC, используя Perl?
- 13. Как конвертировать модули perl в пакеты deb?
- 14. Perl конвертировать изображение в base64
- 15. Конвертировать Perl в Ruby Regex
- 16. Perl, конвертировать хеш в массив
- 17. Java OO: Возможно ли это?
- 18. Java OO Основной метод путаницы
- 19. Сделать проект более OO Java
- 20. Haskell datatype для Java (OO)
- 21. Преобразование Perl в Java
- 22. Зачем использовать Perl OO просто как метод инкапсуляции данных?
- 23. Как конвертировать FXML в JAVA
- 24. Как конвертировать дженерики в java?
- 25. Ведение OO при использовании слушателей в Java
- 26. Конвертировать forloop в foreach в Perl
- 27. Анализ кода Java OO в Eclipse
- 28. Расширение методов OO OO в python
- 29. «Победа» OO программирует собеседование с помощью sysadmin/Perl/Linux background?
- 30. Как перевести скрипт perl на Java?
inccode.com больше не доступен. Можно ли это найти где-то в другом месте? – Kai
любое обновление по этому вопросу? –
@Kai любые новости? этого сайта больше нет (сейчас это что-то другое ..) –