% $Id$ \section{Chaines de caractères} \subsection{quote} \begin{frame}[fragile] \frametitle{Opérateur et délimiteurs} \begin{block}{} \begin{tabular}{|l|l|l|} \hline \textbf{faire}&\textbf{interpollée}&\textbf{non interpolée}\\ \hline \hline une chaine&\verb+""+&\verb+''+\\ \hline \hline une chaine&\verb+q//+&\verb+qq//+\\ \hline une liste&&qw//\\ \hline \end{tabular} \end{block} \vfill \pause \begin{block}{Délimiteurs des opérateurs:} \begin{itemize} \item n'importe quels caractères \item les couples logiques \verb+()+, \verb+[]+, \verb+{}+ \end{itemize} \end{block} \vfill \pause \begin{exampleblock}{} Exemple: \verb+q//+, \verb+q;;+, \verb+q[]+, \verb+q{}+ \end{exampleblock} \end{frame} \begin{frame}[fragile] \frametitle{quote: exemple} \begin{exampleblock}{Chaine interpolées:} \begin{verbatim} my $var = "UMR7620"; print "nous somme \"$var\""; print qq!nous somme "$var"!; \end{verbatim} \end{exampleblock} \pause \vfill \begin{exampleblock}{Chaine non interpolées:} \begin{verbatim} my $var = 'UMR7620'; print '$var est une variable'; print q{'$var' est une variable}; \end{verbatim} \end{exampleblock} \pause \vfill \begin{exampleblock}{une liste} \begin{verbatim} my @tableau = qw(une liste de mots); \end{verbatim} \end{exampleblock} \end{frame} \begin{frame}[fragile] \frametitle{quote quote} \vfill \begin{exampleblock}{Pour les longues chaines:} \begin{verbatim} my $var = 42; print <{=~} \onslide<3->{m}\onslide<4->{/}\onslide<5->{motif}\onslide<4->{/}\onslide<6->{i}; $var \onslide<2->{=~} \onslide<4->{/}\onslide<5->{motif}\onslide<4->{/}\onslide<6->{i}; \onslide<3->{# séparateur / => opérateur m} $var \onslide<2->{=~} \onslide<3->{s}\onslide<4->{/}\onslide<5->{motif}\onslide<4->{/}\onslide<5->{remplacement}\onslide<4->{/}\onslide<6->{g}; \end{semiverbatim} \end{exampleblock} \vfill \pause \begin{block}{} \begin{itemize} \small \item un opérateur de comparaison \begin{itemize} \item \verb+=~+ : correspond \item \verb+!~+ : ne correspond pas \end{itemize} \pause \item une action \begin{itemize} \item \textbf{m} (match, le défaut) \item \textbf{s} (substitute) \end{itemize} \pause \item des séparateurs (au choix) \pause \item le texte recherché (et le remplacement) \pause \item éventuellement un modificateur \end{itemize} \end{block} \end{frame} \begin{frame}[fragile] \frametitle{RegExp: exemple dans perl} \begin{exampleblock}{} \begin{verbatim} my @list = ('UMR7620', 'umr8639'); foreach my $umr (@list) { my ($number) = $umr =~ /^umr(.*)$/; if ($number) { print "Unité mixte $number\n"; } } \end{verbatim} \end{exampleblock} \pause \vfill \begin{block}{la doc !} \begin{itemize} \item \verb+man perlre+ \item \verb+man perlretut+ \end{itemize} \end{block} \end{frame}