Comme sur la version 2.2, des scripts peuvent ajouter des gestionnaires de fichiers à la boucle principale, et définir des points d'insertion dessus pour obtenir un contrôle lorsque les données sont disponibles.
Il (est assigné( au script d'ouvrir d'abord le gestionnaire de fichiers, qui peut se référer à une connexion réseau, un tty, un tube, comme dans open (FH, "program |"), etc.
Lors du traitement des supports de communication avec le réseau, il est fortement recommandé d'utiliser l'API fourni par sirc &connect, &listen, &accept, &resolve, &newfh et $bindaddr) plutôt que d'utiliser les fonctions perl brutes. Ceci aura pour effet de faire travailler ces scripts de façon transparente sur les proxies des supports de communication, lorsque le module de communication est chargé. Si vous avez besoin d'une fonctionnalité supplémentaire, bien que (comme le support de communication UDP, ou admettant des connexions multiples depuis le support d'écoute), vous puissiez utiliser les fonctions propres de perl.
Pour avoir de nouveau le contrôle lorsque les données sont disponibles sur un gestionnaire de fichiers, vous pouvez l'ajouter à la définition de fh sirc select()s (from), avec &addsel($fh, "somename", flag); où sel_name est le sous-programme qui prendra le contrôle à nouveau lorsqu'il y aura un message à lire, et l'indication 1 si vous voulez que sirc protége votre connexion et la fractionne en lignes, et 0 si vous ne voulez pas du tout que sirc touche à vos données..
La convention pour les sous-programmes sel_somename est différente dans les deux cas suivants :
Pour les gestionnaires de fichiers protégés, il est autorisé un seul argument contenant une ligne qui a été lue, incluant l'expression finale \n. Si la connexion est fermée ou interrompue, cet argument est '' et le gestionnaire de fichiers a déjà été fermé et supprimé de l' ensemble de fh à select(). Si vous la fermez vous-même, vous devez utiliser &remsel pour indiquer à sirc de la supprimer de l'ensemble.
Pour les gestionnaires de fichiers non protégés, aucun argument n'est autorisé; le point d'insertion est appelé lorsque select() indique que la fonction fh est prête pour la lecture, et il est impératif au point d'insertion de lire à partir de lui (en s'assurant de ne pas bloquer le point d'insertion, sysread devrait donc être utilisé et non <>), et éventuellement le fermer et le supprimer avec &remsel.
Pour supprimer un gestionnaire de fichiers de l'ensemble de fh ()select()ed, appelez &remsel($fh); où $fh est le gestionnaire de fichiers.
Remarquez que sirc n'effectue jamais de contrôle pour vérifier que le gestionnaire de fichiers donné est valide. Avoir un fh fermé ou invalide dans le jeu des select()able, ou ne pas réellement lire les donéées sur un sel_* hook non protégé, obligera sirc à monopoliser l'unité centrale (CPU) en ne bloquant pas select().
Pour un exemple d'utilisation intensive de tout ceci, voyez le script ftp.pl qui met en application un client ftp à l'intérieur de sirc (vous pourrez le trouver sur la page internet de sirc à l'adresse http://www.eleves.ens.fr:8080/home/espel/sirc/sirc.html).