Need help with a Perl Script using Pop, Shift, & Push
Hello everyone,
I am new to Perl and I am having some issues getting a script to work. I have to create a script that uses an array of 52 cards, "shuffles" the cards (using loops with the pop, shift, and push commands), and prints out the top five. This is not a randomizing of the array just a rearrangement of the array. I have been able to get it to rearrange the array, but not with the result that I would like. I have been working on this for a week and have been running in circles!
Thank you all for your help.
Here is the code that I have been given to start:
And here is the instructions that I have been provided to accomplish this objective:
Using pop, shift, push, and the starting code below, write a script that sufficiently "shuffles" a simulated deck of cards before printing the top five cards. Save this script in your home directory as obj10.pl. The goal of this objective is to familiarize yourself with these three functions while using loops and to use them together to rearrange the array but not a randomly shuffled array.
Here is the latest script that I have come up with:
Here is the result of this script:
I am just working on the rearranging of the array right now, and still need to add the commands to print the top 5.
O'Reilly School Of Technology(University of Illinois), Urbana-Champaign, IL USA, Kelly Hoover, Linux/Unix 4: Scripting for Administrators Sed, Awk, and Perl "http://www.oreillyschool.com/certificates/sysadmin.php"
Moderator's Comments:
Please view this code tag video for how to use code tags when posting code and data.
You already know how a for-loop works, it seems; the top 5 would just be another loop, from 0 to 5.
As for shuffling the cards, how does one usually shuffle a deck? Split it in half, then combine them randomly. I might try popping each card from the deck individually and putting them in either array A or B. Then looping until array A and B are both empty, popping a card from either A or B each loop and pushing it back into the original array. You could randomly choose which array you pick from.
Thank you! That has been a great help to getting the start that I needed. I had worked with splitting the original array, but then had my loops becoming way too complicated and then they weren't running correctly.
Hey Guys, Thanks for always being helpful, I have another issue that I need a little insight on how to fix.
See the below script I have and the error I get. I don't understand why it does that, am I not using the continue correctly?
#!/bin/bash -x
# @(#) File: filepush.sh
#... (5 Replies)
Hi,
I need to add confirmation pop up msg box before deleting the record from database, I have added following snippets to my code but its not working for me, your help will be much appreciated :
print header;
print <<EOF;
<script type="text/javascript">
function confirmOk() {
return... (0 Replies)
Hello!
Please I need some help on writing a script to push files from one server to the other once a day, everyday. I know that I can use this script on a crontab to send the files , but I am not sure how to start writing it, the actual script.
I could start by declaring some variables:
... (4 Replies)
I need to use pushd and popd to navigate all of the subdirectories in my current directory.
I know how to get into each subdirectory, add it to the stack, and pop back out, but i cant figure out how to get into subdirectories deeper than the first without adding a foreach and if statement for... (1 Reply)
$key = "a";
$value = "hello";
%myhash = {} ;
push @{ myHash{$key} }, $hello;
print $myHash{$key}."\n";
this script prints
"hello" but has following error message.
Reference found where even-sized list expected at ./test line 5.
can any one help me to fix this problem?? (3 Replies)
I am attempting to write a script that reads each line of a file into a separate array and does some work on it then puts it all back together and I think I need to use the 'shift()' command to read each line into its own array, but I need help nesting it into a while loop (while not eof)
So... (10 Replies)
I am using a seed file shown below to separate cisco devices by ios/os type. I want to bunch all the devices based on ios/os version. Once I find a match, I only want to push the ip address into the appropriate array.
Example of seedfile
8 host1 (C3500XL-C3H2S-M) 11.0(5)WC17 10.1.44.21
9... (1 Reply)
I wanted a perl script to be done for Password search & replace in two files.
For Example:
Example 1)--i am having a file such as
cat /opt/customer/Ariba/UAT/ariba/app/buyer/Server/config/Parameters.table
Example 2)--and i am having a other file in other location such as cat... (4 Replies)
hi,
another perl question,
I don't understand the below
while (<FILE>) {
push @last5, $_; #add to the end
shift @last5 if @last5 > 5 ; #take from the beginning
}
can someone please explain to me how does
shift @last5 if @last5 > 5 is taking last 5 lines from... (5 Replies)