Perl Split Issue


 
Thread Tools Search this Thread
Top Forums Programming Perl Split Issue
# 1  
Old 05-19-2010
Perl Split Issue

Hello All -

I am having trouble with the split command in perl. Here is what I am trying to do.

Code:
 75|2455345|2455349|00:00:00|00:00:00|Once|0|Frank Vacation | |
5[4X||-||-
76|2455311|2455312|00:00:00|00:00:00|Once|0|Power Down | |
2|0|0|0|0|0[6X||-||-

I want to only print out the 8th column. So that would be "Frank Vacation" and "Power Down" I need to run this on a file that has thousands of lines like these, and I will always need the 8th column.

Here is how I have been trying to do it:

Code:
#!/usr/bin/perl -w
use warnings;
use strict;

open(FH,"data.pl");

while (my $line = <FH>) {
my @hash_array = split(/\|/,$line);
print $hash_array[0];
}

close(FH);

Thanks for any help provided!

Tarken
# 2  
Old 05-19-2010
Code:
print $hash_array[7];

This User Gave Thanks to pseudocoder For This Post:
# 3  
Old 05-19-2010
That worked great, I totally forgot about that! The eighth spot starting with 0 would be 7. Thank you, how do I get it to do line breaks after each one? Put in a \n somewhere? EDIT: I am getting an error when I run it as well,

Code:
Use of uninitialized value $hash_array[7] in print at ./2web.pl line 9, <FH> line 2.


Last edited by tarken; 05-19-2010 at 07:41 PM..
# 4  
Old 05-19-2010
Quote:
Originally Posted by tarken
The eighth spot starting with 0 would be 7.
Right!
Quote:
Originally Posted by tarken
how do I get it to do line breaks after each one? Put in a \n somewhere?
Right!
Code:
print "$hash_array[7]\n";

or
Code:
print $hash_array[7], "\n";

# 5  
Old 05-19-2010
Thank you very much! Any idea why it is giving me an error?

Code:
Use of uninitialized value $hash_array[7] in print at ./2web.pl line 9, <FH> line 2.

# 6  
Old 05-19-2010
I could not reproduce that error with your code from above...
What did you change? Maybe you can post your current code that is throwing this error?
# 7  
Old 05-19-2010
Sure.

Code:
#!/usr/bin/perl -w
use warnings;
use strict;

open(FH,"data.pl");

while (my $line = <FH>) {
my @hash_array = split(/\|/,$line);
print $hash_array[7], "\n";
}

close(FH);

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl split and array

Hello, I have the following 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\t$list\t$list\t$list\t$list\t$list$list\t\n"; 131 $len =... (2 Replies)
Discussion started by: Zam_1234
2 Replies

2. Shell Programming and Scripting

Split the string in perl

Hi All, How to split the string KAR_Celltick_Ban_GSMGW3 and want to pickup the third filed. Sometime the string may be "KAR_Celltick_Ban" like this Thanks in advance (1 Reply)
Discussion started by: sujit_kashyap
1 Replies

3. Shell Programming and Scripting

Perl split function

my @d =split('\|', $_); west|ACH|3|Y|LuV|N||N|| Qt|UWST|57|Y|LSV|Y|Bng|N|KT| It Returns d as 8 for First Line, and 9 as for Second Line . I want to Process Both the Files, How to Handle It. (3 Replies)
Discussion started by: vishwakar
3 Replies

4. Shell Programming and Scripting

Perl split and join

Hi, I have tried the split and join functions but stuck with unexpected results. Any help appreciated. I pass multiple values at command line like perl test.pl -type java,xml. This works good for me but i am not sure how to print it in the required format. Here is the code i tried:... (4 Replies)
Discussion started by: nmattam
4 Replies

5. Shell Programming and Scripting

PERL split function

Hi... I have a question regarding the split function in PERL. I have a very huge csv file (more than 80 million records). I need to extract a particular position(eg : 50th position) of each line from the csv file. I tried using split function. But I realized split takes a very long time. Also... (1 Reply)
Discussion started by: castle
1 Replies

6. Shell Programming and Scripting

Perl split question

hi, I have a seemingly really stupid question, but here goes! What do you enter into split delimiter to seperate something like this "December 12, 1995" and get December 12 1995 ? thanks (5 Replies)
Discussion started by: ade214
5 Replies

7. Shell Programming and Scripting

Use split function in perl

Hello, if i have file like this: 010000890306932455804 05306977653873 0520080417010520ISMS SMT ZZZZZZZZZZZZZOC30693599000 30971360000 ZZZZZZZZZZZZZZZZZZZZ202011302942311 010000890306946317387 05306977313623 0520080417010520ISMS SMT ZZZZZZZZZZZZZOC306942190000 30971360000... (5 Replies)
Discussion started by: chriss_58
5 Replies

8. 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

9. Shell Programming and Scripting

split question perl

I am interested in 2 and 36th fields in this input file. I was wondering if there was a more efficeint way to do this. ($pt1,$bkup_name,$pt3,$pt4,$pt5,$pt6,$pt7,$pt8,$pt9, $pt10,$pt11,$pt12,$pt13,$pt14,$pt15,$pt16,$pt17, ... (7 Replies)
Discussion started by: reggiej
7 Replies

10. Shell Programming and Scripting

perl split function

$mystring = "name:blk:house::"; print "$mystring\n"; @s_format = split(/:/, $mystring); for ($i=0; $i <= $#s_format; $i++) { print "index is $i,field is $s_format"; print "\n"; } $size = $#s_format + 1; print "total size of array is $size\n"; i am expecting my size to be 5, why is it... (5 Replies)
Discussion started by: new2ss
5 Replies
Login or Register to Ask a Question