Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

(code) Array Play

by ybiC (Prior)
on Apr 30, 2001 at 07:07 UTC ( #76539=snippet: print w/replies, xml ) Need Help??
Description: A nothing snippet illustrating a few rudimentary array capabilities.   Extra points for recognizing what book I've been re-reviewing {grin}

Updates:
Slightly more idiomatic for(@list) syntax.
Cleaner OS-based break character detection (commented out), with ternary op syntax active.
Remove unecessary srand call.   Thanks tilly, for mentioning that.   8^)
Add Win32 detection for OS-specific prompting.
Move $random before $first and $last so all names included in random selection.   Thanks Albannach, for pointing that out.   8^)

#!/usr/bin/perl -w

# arrayplay.pl
# 2002-03-20   22:10 CST
# 2001-04-30

use strict;


# using ternary op:
my $donechar = $^O =~ /MSWin32/ ? 'CTRL+Z<enter>' : 'CTRL+D';
print "\n  Enter words, follow each with <enter>.\n";
print  "  $donechar after final <enter>.\n\n";

# same thing, but with default val+if:
# my $donechar = 'CTRL+D';
# $donechar    = 'CTRL+Z<enter>' if ($^O eq 'MSWin32');
# print "\n  Enter words, follow each with <enter>.\n";
# print  "  $donechar after final word+<enter>.\n\n";

chomp(my @words = <STDIN>);
print "\n  ", $#words+1, " words entered.\n";


my $random = rand(@words);
my $first  = shift(@words);
my $last   = pop(@words);


unshift(@words, $first);
push(@words, $last);
print
  "    first entry:  $first\n",
  "    last entry:   $last\n",
  "    random entry: $words[$random]\n",
  "\n";


print "  as entered:\n";
PrintList(@words);


print "  reverse order:\n";
my @reversed = reverse(@words);
PrintList(@reversed);


print "  sorted alphabetically:\n";
my @sorted = sort(@words);
PrintList(@sorted);


print "  reverse alphabetic:\n";
my @revalpha = reverse(@sorted);
PrintList(@revalpha);


if ($^O eq 'MSWin32') {
  print "  Hit <enter> to exit.";
  <STDIN>;
  exit;
}


sub PrintList {
  print "    $_\n" for(@_);
  print "\n";
}
Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://76539]
help
Chatterbox?
[shmem]: It's common for some vendors to have column names such as WRSTVG or some other such whizzbang, and another table where these names are mapped to something meaningful depending on how you look at the data
[shmem]: afair in SAP that occurs all the time
[shmem]: afair in SAP that sort of indirection is sprinkled all over the database (for hysterical raisins)

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (11)
As of 2017-05-25 13:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?