Je tente d'exécuter un sous-programme spécifique à partir d'une bibliothèque Perl qui imprime une grande quantité de code HTML pendant l'exécution. Après avoir fait quelques recherches, j'ai découvert qu'il est possible d'utiliser la méthode select()
pour changer temporairement la sortie print
, par exemple, STDERR, en la cachant complètement à l'avant et en la restituant à STDOUT une fois que la bibliothèque a fait son travail.Problème d'utilisation de select() de Perl pour rediriger les impressions vers STDERR, méthode écrasée dans une bibliothèque
Assez simple, mais cela ne marchera pas pour moi. Pour une raison quelconque, quelqu'un a créé une méthode select()
dans une bibliothèque critique qui n'a rien à voir avec ce qui précède, mais est une méthode pour interagir avec notre base de données. Par conséquent, chaque fois que j'essaie d'utiliser my $filehandler = select(STDERR);
, j'obtiens la méthode de base de données à la place, ce qui entraîne une erreur. Et je ne peux pas commenter cette méthode ou la retirer des méthodes exportées dans cette bibliothèque sans causer trop de problèmes sur d'autres scripts - y compris la bibliothèque que j'essaie de lancer.
Je ne peux même pas utiliser le commentaire de bloc HTML pour en sortir car la bibliothèque imprime également des commentaires. Existe-t-il d'autres alternatives pour exécuter la méthode correcte select()
? Ou d'autres alternatives pour empêcher temporairement l'impression du code HTML?
EDIT: Pour référence, ma version Perl est v5.10.1 (*) construit pour Comme déjà mentionné x86_64-linux-thread-multi
Peut-être ... http://perldoc.perl.org/CORE.html – toolic
Ou https://stackoverflow.com/a/3673935/1207195 –
C'est ce qu'on appelle un "gestionnaire de fichiers" (il contient des ressources), Je ne suis pas un gestionnaire de fichiers (il ne gère pas les événements) – ikegami