Changeset 156 for trunk/perl/presentation.tex
- Timestamp:
- 08/01/08 05:26:10 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/perl/presentation.tex
r155 r156 657 657 \end{frame} 658 658 659 \section{Variables bis} 660 661 \subsection{Références} 662 663 \begin{frame}[fragile] 664 \frametitle{Référence: Concept} 665 C'est une valeur scalaire\ldots 666 667 \pause 668 \vfill 669 qui fait référence à un scalaire, un tableau ou un hash. 670 671 \pause 672 \vfill 673 \begin{itemize} 674 \item elle contient l'adresse mémoire de l'élément pointé 675 \pause 676 \item plusieurs références peuvent pointer la même variable 677 \pause 678 \item on peut faire des tableaux de références\ldots 679 \end{itemize} 680 \pause 681 \vfill 682 \textbf{Ce n'est pas un pointeur au sens C du terme}: \verb.$ref++;. ne donnera rien de bien !!!! 683 \end{frame} 684 685 \begin{frame}[fragile] 686 \frametitle{Créer des références} 687 \pause 688 Référence de tableaux: 689 \pause 690 \vfill 691 \begin{verbatim} 692 my @tableau = (1, 2, 3); 693 \end{verbatim} 694 \pause 695 Récupérer une référence vers: 696 \begin{verbatim} 697 my $tabref = \@tableau; 698 \end{verbatim} 699 \pause 700 Créer une référence vers un nouveau tableau: 701 \begin{verbatim} 702 my $tabref = [ @tableau ]; 703 \end{verbatim} 704 \vfill 705 \vfill 706 \pause 707 Référence de hash: 708 \pause 709 \vfill 710 \begin{verbatim} 711 my %hash = (a => 1); 712 \end{verbatim} 713 \pause 714 Récupérer une référence vers: 715 \begin{verbatim} 716 my $hashref = \%hash; 717 \end{verbatim} 718 \pause 719 Créer une référence vers un nouveau tableau: 720 \begin{verbatim} 721 my $hashref = { %hash } ; 722 \end{verbatim} 723 \end{frame} 724 725 \begin{frame}[fragile] 726 \frametitle{Utiliser les références} 727 Pour accéder au contenu la variable référencée on utilise \verb+->+. 728 \vfill 729 Pour acceder à la variable elle même: \verb+$$+, \verb+@$+ et \verb+%$+ pour 730 respectivement les scalaires, tableaux et les hash. 731 732 \pause 733 On créer un réference: 734 \begin{verbatim} 735 my $tabref = [ 1, 2, 3 ]; 736 my $hashref = { a => 1 }; 737 \end{verbatim} 738 \pause 739 On accède au tableau via la référence: 740 \begin{verbatim} 741 $tabref->[0]; 742 $hashref->{a}; 743 \end{verbatim} 744 \pause 745 Après tout est presque pareil: 746 \begin{verbatim} 747 scalar(@$tabref); 748 keys %$hashref; 749 \end{verbatim} 750 751 \end{frame} 752 753 \begin{frame}[fragile] 754 \frametitle{Pourquoi les références ?} 755 Perl aplati les listes, remember ? 756 757 \pause 758 \begin{verbatim} 759 my @tab1 = (1,2); my @tab2 = (3,4); 760 my @tab = (@tab1, @tab2); 761 \end{verbatim} 762 \verb+@tab+ contient 4 éléments... 763 \pause 764 \begin{verbatim} 765 my @tab1 = (1,2); my @tab2 = (3,4); 766 my @tab = (\@tab1, \@tab2); 767 \end{verbatim} 768 \verb+@tab+ contient 2 éléments qui réferencent des tableaux. 769 \pause 770 771 On accède aux valeurs: 772 \begin{verbatim} 773 $tab[0]->[0]; 774 \end{verbatim} 775 \pause 776 Ou même plus simplement: 777 \begin{verbatim} 778 $tab[0][0]; 779 \end{verbatim} 780 \ldots qui revient à faire un tableau à 2 dimensions. 781 782 \end{frame} 783 784 \begin{frame}[fragile] 785 \frametitle{Références: copain de la mémoire} 786 \begin{small} 787 \begin{verbatim} 788 # très gros tableau 789 my @tab = (); 790 791 fonc(@tab); 792 793 sub fonc { 794 my @tab = @_; # Créer un copie complète 795 } 796 \end{verbatim} 797 \pause 798 \begin{verbatim} 799 # très gros tableau 800 my @tab = (); 801 802 fonc(\@tab); 803 804 sub fonc { 805 my ($tab) = @_; # Ne copie que la référence 806 } 807 \end{verbatim} 808 \end{small} 809 \end{frame} 810 811 \section{Cookbook} 812 659 813 \section*{Fin} 660 814
Note: See TracChangeset
for help on using the changeset viewer.