В зависимости от того, сколько вы хотите, чтобы изменить код это может быть очень простым, как:
#!/usr/bin/perl
system('perl Program1.pl');
system('perl Program2.pl');
system('perl Program3.pl');
Или вы могли бы переписать ваши скрипты в один скрипт с подпрограммами для каждой части вы хотите выполнить. Что-то вроде:
#!/usr/bin/perl
part_A();
part_B();
part_C();
exit;
sub part_A {
# code from Program1.pl goes in here
}
sub part_B {
# code from Program2.pl goes here
}
sub part_C {
# code from Program3.pl here
}
Но если честно, это звучит, как вам просто нужно написать новый сценарий, который делает всю логику вам нужно, и просто мерзавец избавиться от других сценариев. Было бы проще не писать все эти «временные» файлы, чтобы просто читать их снова, чтобы продолжить обработку. Вы можете передавать хеши и массивы в подпрограммы и возвращать хэши или массивы, или просто изменять их, которые вы передали (если вы передаете ссылки).
О, и упоминание о использовании труб-труб полезно только при стандартном и/или стандартном погрешности одной программы и отправке этого стандарта в другую программу. И так как вы сказали, что ваши сценарии пишут в файлы и читаются из файлов, тогда они не печатаются до стандартного и не читают со стандартного. Таким образом, объединение их вместе не принесет вам ничего больше, чем просто вызвать каждого из них последовательно. Вы могли бы просто выполнить их так, как это делается (из bash shell):
$ Program1.pl && Program2.pl && Program3.pl
Не зная реального кода, на него явно трудно ответить. – Lion
Вы можете поместить три вызова в сценарий оболочки или пакетный файл (в Windows). – simbabque
С точки зрения дизайна, есть ли причина, по которой вы фактически не объединяете эти программы в одну реальную программу или, возможно, не конвертируете программы в модули и не запускаете их из одного сценария? Это был бы обычный способ «комбинирования», если у вас нет причин не делать этого. –