Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

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

In reply to Re: reading the 5th element from file doesn't work. by 2teez
in thread reading the 5th element from file doesn't work. by singho

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (2)
As of 2024-04-19 21:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found