Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^2: How To Read Hosts File Into a Hash

by at2marty (Novice)
on Sep 16, 2011 at 00:12 UTC ( [id://926269]=note: print w/replies, xml ) Need Help??


in reply to Re: How To Read Hosts File Into a Hash
in thread How To Read Hosts File Into a Hash

Thank you for your reply. I changed my code to the following.

#!/usr/bin/perl -w use strict; my $hostfile = "/etc/hosts"; my %hosts = (); open FILE, "<", "$hostfile" || die "Cannot open $hostfile $!"; while (<FILE>) { next if /^\s*#/ ; # skip comments chomp; my ($key, $value) = split (" ", $_); $hosts{$key} = $value; } close FILE;

The output is as follows.

Use of uninitialized value $key in hash element at hash.pl line 14, <F +ILE> line 3. Use of uninitialized value $key in hash element at hash.pl line 14, <F +ILE> line 11.

Why do I get the "uninitialized error" for $key?

Replies are listed 'Best First'.
Re^3: How To Read Hosts File Into a Hash
by toolic (Bishop) on Sep 16, 2011 at 01:17 UTC
    Why do I get the "uninitialized error" for $key?
    My guess is your input file has a blank line:
    while (<FILE>) { next if /^\s*#/ ; # skip comments next unless /\S/; # skip blank lines chomp; my ($key, $value) = split; $hosts{$key} = $value; }
    See perlre
Re^3: How To Read Hosts File Into a Hash
by keszler (Priest) on Sep 16, 2011 at 01:30 UTC

    Your /etc/hosts file lines 3 and 11 have zero or more white space characters and nothing else. You should skip those:

    while (<FILE>) { next if /\A\s*\z/ ; # skip blank lines next if /^\s*#/ ; # skip comments

    Or combine the regexes:

    next if /\A\s*(?:#|\z)/ ; skip comments and blank lines

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (2)
As of 2025-11-08 19:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What's your view on AI coding assistants?





    Results (65 votes). Check out past polls.

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.