SlideServe
Menu
Préférences
© SlideServe · v2026

Perl Tutorial - 2

gisela avatar
18 diapositives · 323 Views · Sep 15, 2014

This tutorial covers vital concepts in Perl, focusing on memory addresses and data structures. It explains how the CPU utilizes memory addresses to track data storage in RAM, covering both scalar and reference-based values. Readers will learn about multi-dimensional arrays, associative arrays (hashes), and how to create and manipulate them effectively. The tutorial provides practical examples to illustrate these ideas, guiding you from basic memory management to using complex data structures in your Perl applications.

Perl Tutorial - 2 - slide 1
01 / 18Perl Tutorial - 2
1 / 17

Télécharger la présentation

Perl Tutorial - 2
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Perl Tutorial - 2 林光龍

  2. Memory Address (1/2) A number that is assigned to each byte in a computer’s memory that the CPU uses to track where data and instructions are stored in RAM. Each byte is assigned a memory address whether or not it is being used to store data. The computer’s CPU uses the address bus to communicate which memory address it wants to access, and the memory controller reads the address and then puts the data stored in that memory address back onto the address bus for the CPU to use.

  3. Memory Address (2/2) $b = 17;$a = \$b;

  4. $b[2] $b[1] $b[0] $c{“k3”} $c{“k2”} $c{“k1”} $a @b %c E017 E015 E013 E001 E035 E033 E031

  5. $b[2] $b[1] $b[0] $c{“k3”} $c{“k2”} $c{“k1”} $a @b %c E017 E015 E013 E001 E035 \@a \$a E033 E031 \%c

  6. Reference A reference is a scalar value that points to a memory location that holds some type of data. $a = 10; @b = (1, 2, 3); %c = ("k1" => "foo", "k2" => "bar"); $add_of_a = \$a; $add_of_b = \@b; $add_of_c = \%c; print <<"END"; The address of \$a is $add_of_a The address of \@b is $add_of_b The address of \%b is $add_of_c END

  7. Multi-Dimensional Array @array1 = ('20020701', 'Sending Mail in Perl', 'Philip Yuson'); @array2 = ('20020601', 'Manipulating Dates in Perl', 'Philip Yuson'); @array3 = ('20020501', 'GUI Application for CVS', 'Philip Yuson'); @main = (@array1, @array2, @array3); The result would be similar to this: @main = ('20020701', 'Sending Mail in Perl', 'Philip Yuson', '20020601', 'Manipulating Dates in Perl', 'Philip Yuson', '20020501', 'GUI Application for CVS', 'Philip Yuson');

  8. Multi-Dimensional Array Instead of pumping these into one list, you can put the references of these arrays in the list: @main = (\@array1, \@array2, \@array3); Or to simplify: @main = ( ['20020701', 'Sending Mail in Perl', 'Philip Yuson'], ['20020601', 'Manipulating Dates in Perl', 'Philip Yuson'], ['20020501', 'GUI Application for CVS', 'Philip Yuson']);

  9. To Get Value in Multi-Dimensional Array (1/2) To reference the first column of the first row: $ref = $main[0]; # set $ref to reference of @array1 $ref->[0]; # Returns the first item in @array To simplify: $main[0]->[0]; You can also simplify this as: $main[0][0]; To get the value of the second column of the third row: $ref = $main[2]; # Third row; $ref->[1]; # second column;

  10. To Get Value in Multi-Dimensional Array (2/2) use strict; my @john = (86, 77, 82, 90); my @paul = (88, 70, 92, 65); my @may = (71, 64, 68, 78); my @grades = (\@john, \@paul, \@may); for (my $row = 0; $row < $#grades+1; $row++) { for (my $col = 0; $col < $#{$grades[$row]}+1; $col++) { print $grades[$row][$col] . ", "; } print "\n"; }

  11. Associative Array (1/2) Scalar is the simplest Perl data type which was designed to hold only one thing like a number, a string or a reference. A list is an ordered collection of scalars. An array is a variable that contains a list. A hash is a data structure like an array, in that it can hold any number of values and retrieve these values at will. However, instead of indexing the values by number, as we did with arrays, we'll look up the values by name. That is, the indices (here, we'll call them keys) aren't numbers but are arbitrary unique strings

  12. Associative Array (2/2) $x $y 188 Larry 1 Wall 3 Dog 3 2 $a[2] $h{"he"} $a[1] $h{“ln"} @a %h $a[0] $h{"fn"}

  13. Creating a Hash my %weekdays = ( 'Sun' => 'Sunday', 'Mon' => 'Monday', 'Tue' => 'Tuesday', 'Wed' => 'Wednesday', 'Thu' => 'Thursday', 'Fri' => 'Friday', 'Sat' => 'Saturday', ); my %month = ( 'January' => '01', 'February' => '02', 'March' => '03', 'April' => '04', 'May' => '05', 'June' => '06', 'July' => '07', 'August' => '08', 'September' => '09', 'October' => '10', 'November' => '11', 'December' => '12', );

  14. Hash Operation Retrieving a value from a hash. Adding new key/values to a hash. Changing the value of an existing hash key. Deleting a key/value from a hash. my $day_of_the_week = $weekdays{'Wed'}; $weekdays{'some'} = 'someday'; $weekdays{'some'} = 'some day'; delete $weekdays{'some'};

  15. Hash Function keys(%hashname) values(%hashname) each(%hashname)

  16. Reference • Perl Tutorial: Start, • http://www.comp.leeds.ac.uk/Perl/start.html • http://www.cyut.edu.tw/~hcchen/perl/Perl%20tutorial%20Start.htm(Big5 Version) • The perl.ogr Online Library, http://www.perl.org/books/library.html • Beginning Perl – perl.org http://www.perl.org/books/beginning-perl/ • Perl For CGI tutorialshttp://www.developingwebs.net/perl/ 17

  17. A. D. Marshall, Practical Perl Programming, 1999-2005, http://www.cs.cf.ac.uk/Dave/PERL/perl_caller.html • Simon Cozens, Ten Perl Myths, February 23, 2000, http://www.perl.com/pub/a/2000/01/10PerlMyths.html • 簡信昌, Perl 學習手札全文, http://perl.hcchien.org/toc.html • 朱孝國, Perl 筆記, http://irw.ncut.edu.tw/peterju/perl.html • Perl的安全性監測, http://www.linuxuser.com.tw/skill_detail.php?cid=869 • Programmer's File Editor, http://www.lancs.ac.uk/staff/steveb/cpaap/pfe/default.htm • The CPAN Search Site, http://search.cpan.org/ • Regular Expression Tutorial, http://www.regular-expressions.info/tutorial.html 18