Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Use of uninitialized value $site in concatenation (.) when excute the perl script (an aside - code review)

by MidLifeXis (Monsignor)
on Aug 31, 2012 at 13:07 UTC ( #991003=note: print w/ replies, xml ) Need Help??


in reply to Use of uninitialized value $site in concatenation (.) when excute the perl script

Take this or leave it, but there are some practices in your code that have a faint whiff of cargo culting or things that may cause problems later on. I understand that this code may just be an example.

#!/usr/bin/perl -w # MLX - Note that the above line also turns on warnings # MLX - in any other modules that you use or require. # MLX - The 'use warnings' pragma below may be more of # MLX - what you intended use strict; use warnings; my ($time, $site, $logName, $fullName, $date, $gmt, $req, $file, $prot +o, $status, $length); # # MLX - You may want to move as much of this declaration # MLX - into the foreach loop, unless you really need the # MLX - data from the last pass through the loop afterwards. # $site; # # MLX - Not sure what you want to do with this one. It # MLX - is a no-op. my $LOGFILE = "config.txt"; # open LOGFILE,"$LOGFILE" or die "cannot open file : $!"; # # MLX - Excellent use of 'open or die "foo: $!"'! # # MLX - If $LOGFILE is assigned from something you don't # MLX - have complete control over, it can be used in # MLX - the 2-argument version of open to overwrite # MLX - another file. Better would be: open LOGFILE,'<', $LOGFILE or die "cannot open file : $!"; # MLX - Another 'improvement' might be to use lexical # MLX - file handles: 'open my $log_fh, ... ' foreach my $line (<LOGFILE>) { ($site, $logName, $fullName, $date, $gmt, $req, $file, $proto, $status, $length) = split(' ',$line); # MLX - Add a 'my' to the beginning of this unless # MLX - you need to have the data from the last pass # MLX - after the loop has terminated. my $a = "$site\n"; print "--$a\n"; my $b = "$logName\n"; print "==$b\n"; } close(LOGFILE);

--MidLifeXis


Comment on Re: Use of uninitialized value $site in concatenation (.) when excute the perl script (an aside - code review)
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (17)
As of 2015-07-01 17:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (13 votes), past polls