Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
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";
}
Comment on (code) Array Play
Download Code

Back to Snippets Section

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://76539]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (12)
As of 2014-12-29 08:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (185 votes), past polls