Comment invoquer la commande “script” Unix dans Perl?

Je suis sûr que c’est une solution facile, mais je dois utiliser “script” (et ne pas collecter les entrées / sorties / erreurs standard) pour mon projet. Je suis un peu nouveau pour Perl, alors s’il vous plaît supportez-moi.

J’ai un script Perl qui fonctionne bien. Lorsque je l’exécute, je tape généralement script > filename avant d’exécuter Perl.

 $script > file.log bash-3.2$ perl foobar.pl 

Cela fonctionne très bien, et quand j’ai fini, je tape exit ou control D pour arrêter le script et enregistrer le fichier. Tout ce que je voudrais faire, c’est incorporer la commande de script dans Perl, puis capturer automatiquement le fichier lorsque le programme cesse de fonctionner (12-16 heures). Le problème que j’ai est que je appelle dans le system("script > file.log"); et ils appellent le system("perl foobar.pl"); il se bloque à l’invite bash-3.2$ . Le seul moyen de faire fonctionner Perl est le contrôle D ou la sortie, en arrêtant la fonction de script.

Quelqu’un a-t-il une idée de la façon de résoudre ce problème? Bien qu’il soit facile de démarrer avec un script avant d’invoquer Perl, si je suis une taupe et que j’oublie, je dois réexécuter le programme (ce qui prend beaucoup de temps).

Avez-vous envisagé d’utiliser le system("script -c 'perl foobar.pl' file.log") ?