Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^3: What can I do to improve my code - I'm a beginner

by AnomalousMonk (Chancellor)
on Aug 11, 2017 at 14:53 UTC ( #1197260=note: print w/replies, xml ) Need Help??


in reply to Re^2: What can I do to improve my code - I'm a beginner
in thread What can I do to improve my code - I'm a beginner

... I am not sure what I need to do to get around these. ... I need them to be global variables, so I define them outside of the WHILE loops. If you say that you see them as redundant can you tell me how to get around doing this?

Please understand that what I see as redundant is useless explicit initialization of a variable. In the case of
    my $input_file = undef;
the assignment does exactly what is done by default; it is purely redundant.

Semantically erroneous statements like
    my @files = undef;
are redundant in the present circumstances because the very next thing you do with these arrays (as far as I can see) is to assign them valid data, thus undoing the erroneous initialization. In other circumstances, the erroneous initialization may lead to a nasty bug.

... I need them to be global variables, so I define them outside of the WHILE loops.

Of course, you need to define lexical variables where you need to use them. On this note, you only use the  @dt lexical within the scope of the  if($firstline==1){ ... } statement block, so that's exactly where I would define it:

if($firstline==1){ ... my @dt = $header[0] =~ /(\d+)/g; ... } else { <IN> for 1..1 }
(Incidentally, the  <IN> for 1..1 statement is needlessly involved: if you just want to read and discard one line, the simple  <IN>; statement does the trick.)


Give a man a fish:  <%-{-{-{-<

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1197260]
help
Chatterbox?
[zentara]: ... an unatural darkness descends on the realm
[shmem]: eclipse? Java? omg...!
[chacham]: The darkness here is quite natural. Sunset was 1.5 hours ago ...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2017-08-21 18:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Who is your favorite scientist and why?



























    Results (324 votes). Check out past polls.

    Notices?