2017-09-27 3 views

Répondre

3

"La console" est un concept un peu compliqué. En réalité, deux handles de fichiers sont attachés par défaut à la console. STDOUT est où la sortie standard est écrite et STDERR est où les erreurs et les avertissements sont écrits. Ensuite, bien sûr, ces handles de fichiers peuvent ne pas être attachés du tout à la console. La plupart des systèmes d'exploitation prennent en charge la redirection d'E/S. STDOUT peut être attaché à un fichier et STDERR à un autre.

Et beaucoup de ces fonctions vous permettent de changer le handle de fichier dans lequel elles écrivent. Par exemple print() prend un premier argument facultatif qui est un handle de fichier.

Puis il y a select qui peut être utilisé pour changer le gestionnaire de fichiers par défaut qui est utilisé par des fonctions comme print().

Dans perldoc perlfunc vous pouvez trouver une liste de "fonctions d'entrée et de sortie". Il est assez simple de parcourir cette liste pour extraire ceux qui produisent des résultats.

  • die - écrit à STDERR
  • warn - écrit à STDERR
  • print - écrit à STDOUT
  • printf - écrit à STDOUT
  • say - écrit à STDOUT
  • syswrite - écrit à le descripteur de fichier spécifié
  • write - écrit sur STDOUT

Il existe, bien sûr, un certain nombre d'autres modules qui peuvent contenir de nouvelles fonctions qui écrivent dans diverses poignées de fichiers. Par exemple, Carp définit les fonctions, carp(), croak(), cluck() et confess() - qui toutes écrivent dans STDERR.

+0

Merci @mob. Bon à savoir, il ya des gens autour de prendre soin de mes fautes de frappe stupides: -/ –

+1

Et il y a 'send' qui écrit dans le socket spécifié. (Qui, au fond, est juste une autre poignée). – Abigail