Sponsored Content
Full Discussion: Perl split and array
Top Forums Shell Programming and Scripting Perl split and array Post 302932726 by Zam_1234 on Friday 23rd of January 2015 06:17:04 PM
Old 01-23-2015
Computer Perl split and array

Hello, I have the following code:
Code:
 while ($line = <fd_in>) {
   126    $line = " " . $line ;
   127  print "our_line:$line\n";
   128    @list = split (/\s+/, $line) ;
   129  print "after_split:@list\n";
   130  print "$list[0]\t$list[1]\t$list[2]\t$list[3]\t$list[4]\t$list[5]$list[6]\t\n";
   131    $len = $#list ;
   132  print "length of array:$len\n";
   133
   134
   135    if (($len >= 7) && ($list[3] ne "total")) { # Ignore header and totals
   136      $cpu_id = $list[2] ;
   137      print "$list[0]\t$list[1]\t$list[2]\t$list[3]\t$list[4]\n";
   138      print "cpu_id: $cpu_id\n";
   139      $pic0 = $list[4] ;
   140      print "pic0: $pic0\n";
   141      $pic1 = $list[5] ;

And when I ran the code, here is one of the output:
Code:
our_line:   1.023  25  tick         8       635  # pic0=L2_dmiss_ld,pic1=Instr_cnt

after_split: 1.023 25 tick 8 635 # pic0=L2_dmiss_ld,pic1=Instr_cnt
        1.023   25      tick    8       635#
length of array:7
        1.023   25      tick    8
cpu_id: 25
pic0: 8

What I am not getting is, line 127 is printing out the whole array and then the "split" is splitting the array based on one or more spaces (I might be wrong, but the output shows like that).
But then in the code line 130, I am trying to print all the elements of the array which is not making sense. It is not printing out all the elements.

Later, line 136 is taking cpu_id as 3rd element of the array ($list[2]), but it should be $list [1]. I am not sure how it is working and might be missing the clue.

Any help is much appreciated.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

split to array in perl

Collegues I have flat file in the following format. 137 (NNP Kerala) (NNP India) 92 (NN Rent) (NN Range) 70 (NNP Thiruvananthapuram) (NNP Kerala) 43 (NNP Tourist) (NNP Home) 40 (NNP Reserve) (NNP Now) 25 (SYM @) (NN hotelskerala) 25 (NNP Thiruvananthapuram-695001) (NNP Kerala) 23 (NN... (3 Replies)
Discussion started by: jaganadh
3 Replies

2. Shell Programming and Scripting

How to get array to not split at spaces?

I have been working on some code for a while, that will parse a log file, look for a specified time discrepancy between entries, and then print that line +/- n other lines out to a file... #!/bin/bash file=$1 # The input log file maxTime=$2 # The time discrepancy to look for n=$3 ... (1 Reply)
Discussion started by: jjinno
1 Replies

3. Shell Programming and Scripting

split variable values into array

i have these values inside variable $blah BUNGA TERATAI 3 5055 ITH 1 0 0 0 1 1 JADE TRADER 143W ITH 4 0 0 0 4 4 MOL SPLENDOR 0307A ITH 3 0 0 0 3 3 so how do I split them into array with the... (4 Replies)
Discussion started by: finalight
4 Replies

4. Shell Programming and Scripting

split and making an array inside another array

I want to run an awk split on a value that has been pushed through an array and I was wondering what the syntax should be?? e.g. running time strings through an array and trying to examine just minutes: 12:25:30 10:15:13 08:55:23 awk ' NR==FNR{ ... (2 Replies)
Discussion started by: dcfargo
2 Replies

5. Shell Programming and Scripting

perl, put one array into many array when field is equal to sth

Hi Everyone, #!/usr/bin/perl use strict; use warnings; my @test=("a;b;qqq;c;d","a;b;ggg;c;d","a;b;qqq;c;d"); would like to split the @test array into two array: @test1=(("a;b;qqq;c;d","a;b;qqq;c;d"); and @test2=("a;b;ggg;c;d"); means search for 3rd filed. Thanks find the... (0 Replies)
Discussion started by: jimmy_y
0 Replies

6. Shell Programming and Scripting

[Perl] Split lines into array - variable line items - variable no of lines.

Hi, I have the following lines that I would like to see in an array for easy comparisons and printing: Example 1: field1,field2,field3,field4,field5 value1,value2,value3,value4,value5Example 2: field1,field3,field4,field2,field5,field6,field7... (7 Replies)
Discussion started by: ejdv
7 Replies

7. Shell Programming and Scripting

PERL : Read an array and write to another array with intial string pattern checks

I have an array and two variables as below, I need to check if $datevar is present in $filename. If so, i need to replace $filename with the values in the array. I need the output inside an ARRAY How can this be done. Any help will be appreciated. Thanks in advance. (2 Replies)
Discussion started by: irudayaraj
2 Replies

8. Shell Programming and Scripting

split string into array in shell

Hi all, I want to split a string into array based on given delimiter, for example: String: "foo|bar|baz" with delimiter "|" into array: strArr to strArr with values foo, bar and baz. Thanks a lot. Roy987 (5 Replies)
Discussion started by: Roy987
5 Replies

9. UNIX for Beginners Questions & Answers

How to split a string into array?

value=malayalam # i need to store the value in an array by splitting the character #the output i need is m a l a y a l a m Please use CODE tags for output data as well as required by forum rules! (5 Replies)
Discussion started by: Meeran Rizvi
5 Replies

10. UNIX for Beginners Questions & Answers

How to split the string value to an array?

Test1.txt Tom is hot Test.sh filename="/directory/Test1.txt" set - A store while IFS= read value do awk '{split($value,store," ")}' done < "$filename" echo ${#sore} From the code in the executing file, I would like each... (8 Replies)
Discussion started by: TestKing
8 Replies
cpc_strtoevent(3CPC)													      cpc_strtoevent(3CPC)

NAME
cpc_strtoevent, cpc_eventtostr - translate strings to and from events SYNOPSIS
cc [ flag... ] file... -lcpc [ library... ] #include <libcpc.h> int cpc_strtoevent(int cpuver, const char *spec, cpc_event_t *event); char *cpc_eventtostr(cpc_event_t *event); The cpc_strtoevent() function translates an event specification to the appropriate collection of control bits in a cpc_event_t structure pointed to by the event argument. The event specification is a getsubopt(3C)-style string that describes the event and any attributes that the processor can apply to the event or events. If successful, the funciton returns 0, the ce_cpuver field and the ISA-dependent control registers of event are initialized appropriately, and the rest of the cpc_event_t structure is initialized to 0. The cpc_eventtostr() function takes an event and constructs a compact canonical string representation for that event. Upon successful completion, cpc_strtoevent() returns 0. If the string cannot be decoded, a non-zero value is returned and a message is printed using the library's error-reporting mechanism (see cpc_seterrfn(3CPC)). Upon successful completion, cpc_eventtostr() returns a pointer to a string. The string returned must be freed by the caller using free(3C). If cpc_eventtostr() fails, a null pointer is returned. USAGE
The event selection syntax used is processor architecture-dependent. The supported processor families allow variations on how events are counted as well as what events can be counted. This information is available in compact form from the cpc_getusage() function (see cpc_getcpuver(3CPC)), but is explained in further detail below. UltraSPARC On UltraSPARC processors, the syntax for setting options is as follows: pic0=<eventspec>,pic1=<eventspec> [,sys] [,nouser] This syntax, which reflects the simplicity of the options available using the %pcr register, forces both counter events to be selected. By default only user events are counted; however, the sys keyword allows system (kernel) events to be counted as well. User event counting can be disabled by specifying the nouser keyword. The keywords pic0 and pic1 may be omitted; they can be used to resolve ambiguities if they exist. Pentium I On Pentium processors, the syntax for setting counter options is as follows: pic0=<eventspec>,pic1=<eventspec> [,sys[[0|1]]] [,nouser[[0|1]]] [,noedge[[0|1]]] [,pc[[0|1]]] The syntax and semantics are the same as UltraSPARC, except that is possible to specify whether a particular counter counts user or system events. If unspecified, the specification is presumed to apply to both counters. There are some additional keywords. The noedge keyword specifies that the counter should count clocks (duration) instead of events. The pc keyword allows the external pin control pins to be set high (defaults to low). When the pin control register is set high, the external pin will be asserted when the associated register overflows. When the pin control register is set low, the external pin will be asserted when the counter has been incremented. The electrical effect of driving the pin is dependent uptoon how the motherboard manufacturer has chosen to connect it, if it is connected at all. Pentium II For Pentium II processors, the syntax is substantially more complex, reflecting the complex configuration options available: pic0=<eventspec>,pic1=<eventspec> [,sys[[0|1]]] [,nouser[[0|1]]] [,noedge[[0|1]]] [,pc[[0|1]]] [,inv[[0|1]]] [,int[[0|1]]] [,cmask[0|1]=<maskspec>] [,umask[0|1]=<maskspec>] This syntax is a straightforward extension of the earlier syntax. The additional inv, int, cmask0, cmask1, umask0, and umask1 keywords allow extended counting semantics. The mask specification is a number between 0 and 255, expressed in hexadecimal, octal or decimal nota- tion. SPARC Example 1: SPARC Example. cpc_event_t event; char *setting = "pic0=EC_ref,pic1=EC_hit"; /* UltraSPARC-specific */ if (cpc_strtoevent(cpuver, setting, &event) != 0) /* can't measure 'setting' on this processor */ else setting = cpc_eventtostr(&event); See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Obsolete | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ cpc(3CPC), cpc_getcpuver(3CPC), cpc_set_add_request(3CPC), cpc_seterrfn(3CPC), free(3C), getsubopt(3C), libcpc(3LIB), attributes(5) The cpc_strtoevent() and cpc_eventtostr() functions exist for binary compatibility only. Source containing these functions will not com- pile. These functions are obsolete and might be removed in a future release. Applications should use cpc_set_add_request(3CPC) instead. These functions are provided as a convenience only. As new processors are usually released asynchronously with software, the library allows the pic0 and pic1 keywords to interpret numeric values specified directly in hexadecimal, octal, or decimal. 28 Mar 2005 cpc_strtoevent(3CPC)
All times are GMT -4. The time now is 05:58 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy