Sponsored Content
Top Forums Shell Programming and Scripting shift and push question in perl Post 302123936 by hankooknara on Wednesday 27th of June 2007 09:36:14 PM
Old 06-27-2007
shift and push question in perl

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 the file?
I am just not getting it,
1) I thought shift was taking item from begining, shouldn't it be the begining of the file?

2) not understanding how shift @last5 if @last5 > 5 works.. can somone let me know item by item please?

big thank you in advance
 

7 More Discussions You Might Find Interesting

1. Linux

FTP push

Hi I am trying to send a file form one linux server into an another linux server. I cannot do ftp get. Can anyone please assist me how can I push the file to the other server ? Thanks. (2 Replies)
Discussion started by: sureshcisco
2 Replies

2. Shell Programming and Scripting

Perl - if conditions is meet, push the last field of $_ into an array

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)
Discussion started by: popeye
1 Replies

3. Shell Programming and Scripting

Shift Question (Perl)

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)
Discussion started by: ifeatu
10 Replies

4. Shell Programming and Scripting

PERL, push to hash of array problem

$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)
Discussion started by: bonosungho
3 Replies

5. UNIX for Dummies Questions & Answers

Rsync push or pull?

We have a cluster of 3 web servers. I'll be updating a single master server and copying info to the other 2 slave servers. What's the best way of synching all of them? Run rsync on each of the slave servers to pull the updates from the master? Or run rsync on the master to push the updates to the... (1 Reply)
Discussion started by: gaspol
1 Replies

6. Homework & Coursework Questions

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... (2 Replies)
Discussion started by: Hax0rc1ph3r
2 Replies

7. Shell Programming and Scripting

Script to Push Files

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)
Discussion started by: gkelly1117
5 Replies
mlib_VectorMulShift_U8_Mod(3MLIB)			    mediaLib Library Functions				 mlib_VectorMulShift_U8_Mod(3MLIB)

NAME
mlib_VectorMulShift_U8_Mod, mlib_VectorMulShift_U8_Sat, mlib_VectorMulShift_U8C_Mod, mlib_VectorMulShift_U8C_Sat, mlib_VectorMul- Shift_S8_Mod, mlib_VectorMulShift_S8_Sat, mlib_VectorMulShift_S8C_Mod, mlib_VectorMulShift_S8C_Sat, mlib_VectorMulShift_S16_Mod, mlib_Vec- torMulShift_S16_Sat, mlib_VectorMulShift_S16C_Mod, mlib_VectorMulShift_S16C_Sat, mlib_VectorMulShift_S32_Mod, mlib_VectorMulShift_S32_Sat, mlib_VectorMulShift_S32C_Mod, mlib_VectorMulShift_S32C_Sat - vector multiplication with shifting, in place SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ] #include <mlib.h> mlib_status mlib_VectorMulShift_U8_Mod(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_U8_Sat(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_U8C_Mod(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_U8C_Sat(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8_Mod(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8_Sat(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8C_Mod(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8C_Sat(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16_Mod(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16_Sat(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16C_Mod(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16C_Sat(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32_Mod(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32_Sat(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32C_Mod(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32C_Sat(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); DESCRIPTION
Each of these functions performs an in-place multiplication of two vectors and shifts the result. For real data, the following equation is used: xz[i] = xz[i] * y[i] * 2**(-shift) where i = 0, 1, ..., (n - 1). For complex data, the following equation is used: tmp = xz[2*i] xz[2*i] = (tmp*y[2*i] - xz[2*i + 1]*y[2*i + 1]) * 2**(-shift) xz[2*i + 1] = (tmp*y[2*i + 1] + xz[2*i + 1]*y[2*i]) * 2**(-shift) where i = 0, 1, ..., (n - 1). PARAMETERS
Each of the functions takes the following arguments: xz Pointer to the first element of the first source and result vector. y Pointer to the first element of the second source vector. n Number of elements in each vector. shift Right shifting factor. The ranges of valid shift are: 1 <= shift <= 8 for U8, S8, U8C, S8C types 1 <= shift <= 16 for S16, S16C types 1 <= shift <= 31 for S32, S32C types RETURN VALUES
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
mlib_VectorMulShift_U8_U8_Mod(3MLIB), attributes(5) SunOS 5.10 10 Nov 2004 mlib_VectorMulShift_U8_Mod(3MLIB)
All times are GMT -4. The time now is 01:04 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy