Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: reading the 5th element from file doesn't work.

by 2teez (Priest)
on Apr 24, 2013 at 05:38 UTC ( #1030282=note: print w/ replies, xml ) Need Help??


in reply to reading the 5th element from file doesn't work.

Hi singho,
There are several things wrong here.
1. According to your post title, do you what the 5th Element of the whole file, or each line in the file?
If your intention is the 5th Element of the whole file, then do this:

my @string; open(SYSLOG, "/tmp/log100lines") or die "Can't open file: $!\n"; foreach my $line (<SYSLOG>) { chomp $line; push @string, $line } print $string[4],$/;
2. But it seem, to me you want the 5th element of each line, which in that case you need do this:
open(SYSLOG, "/tmp/log100lines") or die "Can't open file: $!\n"; foreach my $line (<SYSLOG>) { chomp $line; my @string = split(/ /, $line); ## remove the function join print "$string[4]\n"; }
NOTE:
a.) The scope of the array variable "@string" in the both cases,
b.) In the second script, you don't need the function join, because it Joins the separate strings of LIST into a single string with fields separated by the value of EXPR which in your case is ',', so your 5th element of each line has an uninitialized value.

That been said, there are a number of things, I think one should take note:
  1. use these pragma: warnings and strict
  2. use lexically scoped file-handles and use 3 -argument open function like
    open my $fh, '<', "file_to_open" or die "can't open file: $!";
  3. use a while loop, to walk through a file, step-wise like:
    while(<$fh>){ ... }
  4. close all opened file handles
  5. Please, also check your shebang line

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me


Comment on Re: reading the 5th element from file doesn't work.
Select or Download Code
Re^2: reading the 5th element from file doesn't work.
by singho (Novice) on Apr 24, 2013 at 08:54 UTC
    Thanks a lot for your help a explantion, i ended up using join, since the above with just split failed eariler, may be i missed something before. I tried using the above code it worked neatly. Thanks a lot.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2014-10-25 21:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (149 votes), past polls