%% $Id$

\section{Espaces de noms}

\begin{frame}[fragile]
\frametitle{Principe}

\begin{block}{}
Ils séparent de manière logique les différents objets (fonctions,
variables) du programme.

Ils évitent les collisions dans les noms (quand on utilise plusieurs
modules).

\begin{itemize}
\item Ils contiennent des variables et fonctions
\item l'espace de nommage par défaut est \verb+main+
\item le séparateur logique est \verb+::+
\end{itemize}
\end{block}

\begin{exampleblock}{}
\verbatiminput{perl.main.namespace.pl}
\end{exampleblock}
\end{frame}

\begin{frame}[fragile]
\frametitle{Convention}
\begin{block}{les espaces de nommage ne sont que des étiquettes}
\begin{itemize}
\item le nom donne la fonction
\item les nom en minuscule sont privés
\end{itemize}
\end{block}

\begin{exampleblock}{Quelques examples}
\begin{itemize}
\item \verb+POSIX+ - les fonctions POSIX (Unix)
\item \verb+File+ - fonctions sur les fichiers
\begin{itemize}
\item \verb+File::Temp+ - fichiers temporaires
\item \verb+File::Find+ - recherche de fichiers
\end{itemize}
\item \verb+Net+ - fonctions réseaux
\begin{itemize}
\item \verb+Net::FTP+ - client ftp
\item \verb+Net::HTTP+ - le web
\end{itemize}
\item \ldots
\end{itemize}
\end{exampleblock}
\end{frame}
