The next function is "pop" which chops off the highest element from an array, and returns that value. Naturally, there is a push function, but it is not demonstrated. The sort command is shown, however.
The final part of the program shows how to implement the equivalent of a "case statement", since there is no "switch" command in Perl as there is in C or C++ languages. It uses the power of matching and regular expressions in order to achieve the same result.
#!/usr/bin/perl # Using Simple Perl Functions print "Enter pattern:"; $pattern = <STDIN>;Enter pattern: Josh
# Scan through the passwd file. Create an array of lines with search pattern @people = `cat /etc/passwd | grep $pattern`; print @people, "\n";jeddy:8J2fhwdxUqEiM:2626:1999:Joshua Eddy:/home/atlas2/jeddy:/usr/local/bin/bash
# This section manipulates the strings grabbed from the passwd file 
$j=0;
for ($i = 0; $i<= $#people; $i++)
  {$_ = $people[$i]; 
   # Use "split" to break the string into separate elements between colons
   @passwd_data[0..6]= split(":");  # Using double quotes for the delimiter 
 
   # This field contains the full name of the user
   print $passwd_data[4];
   print "\n";
   # Use "split" to break apart first and last names
 
   @temp = split(/ /, $passwd_data[4]);  # Use the slash for a delimiter
  
   # Use the function "pop" to pull off the last name
   $lastnames[$j] = pop(@temp);
   #print last name first, then what's left in @temp (first name)
   print $lastnames[$j],", ", @temp , "\n\n"; 
   $j++;
  }
Joshua Eddy$,="\n "; # Change the print separator to a carriage return # Use the "sort" function to sort the array print "Sorted by last name: ",sort @lastnames; print "\n";Sorted by last name:
$,="";    # Reset the print separator to null
# Emulating the "switch" statement
print "Do they like Perl?\n";
while (<>)  # Infinite loop requesting keyboard response
  {
    $answer = "I don't understand. Type 'Q' to quit";
   
    REPLY:  # Skip other statements at "last REPLY".  Exit loop at "goto".
     {
       # Beginning "y" followed by possibly "es" at end, and ignore case
       /^y(es)?$/i  && do { $answer= "Perl is Kewl!"; last REPLY; };
       # Beginning "n" followed by possible "o", ignore case
       /^no?$/i  &&  do { $answer = "What a shame..."; last REPLY; };
       # The exact word "maybe", but ignore case
       /^maybe$/i  &&  do { $answer = "Let's learn more."; last REPLY; };
 
       # Beginning "q", or the word "quit", ignoring case.  Jump out of "while"
       /^q(uit)?/i  &&  do { $answer = "QUIT"; print "Thanks!\n";goto EXIT; };
     }
     print $answer, "\n";
     print "But, do they like Perl?\n";
  }
EXIT:
print "Going on....\n";
Do they like Perl? yes