Uninitialized values in hash

Uninitialized values in hash

am 10.04.2008 08:54:51 von Mike

Hi,

I am running the following code:

use strict;
use warnings;

my $verbose = 1;
my $info = "[INFO] :";
my $error = "[ERROR]:";

my $configFile = "config.dat"; # Recommended plugins.
my %User_Preferences = ();


####################### Subroutines #######################





#################################### Start Main
#######################################
print "Reading configuration data ...\n";


open FILE, "$configFile" or die "$error Could not open file
$configFile :$! ";

while () {

s/\s+$//;# Remove all \r, \n, ^M from end of line
next if (/^$/);# ignore null lines
next if (/^\s*#/); # ignore comment line.
my ($config_name,$config_val)=split(/\s*=\s/, $_,2);# Split the line
$User_Preferences{$config_name}=$config_val;
$verbose && print "$config_name\n";

}

close FILE;

print "Deploying $User_Preferences{pathdeployunit}";

I get the following output:

Reading configuration data ...
asadminexecutable=C:\sailfin\b22\sailfin\bin>C:\sailfin\b22\ sailfin\bin
\asadmin
passwordfile=C:\Documents and Settings\eraonel
\remote_admin_password.txt
user=admin
host=137.58.240.75
port=4848
pathdeployunit=M:\target\complete-ear-0.0.0.1-SNAPSHOT.ear
Use of uninitialized value in concatenation (.) or string at /vobs/
mbv_admin/tools/scripts/test/rdeploy.pl line 39.
Deploying
Compilation finished at Thu Apr 10 08:46:02

Question:

Is not the hash User_Preferences initialized with values when I read
my file? Is there another way to do it?

cheers,

//mike

Re: Uninitialized values in hash

am 10.04.2008 09:00:36 von Frank Seitz

mike wrote:

> my ($config_name,$config_val)=split(/\s*=\s/, $_,2);# Split the line
^
\s*
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Re: Uninitialized values in hash

am 10.04.2008 09:37:22 von Mike

On 10 Apr, 09:00, Frank Seitz wrote:
> mike wrote:
> > my ($config_name,$config_val)=3Dsplit(/\s*=3D\s/, $_,2);# Split the line=

>
> ^
> \s*
> Frank
> --
> Dipl.-Inform. Frank Seitz;http://www.fseitz.de/
> Anwendungen für Ihr Internet und Intranet
> Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel


Thanks a lot for the concrete feedback!

//mike

Re: Uninitialized values in hash

am 10.04.2008 20:46:11 von Guido Ostkamp

mike wrote:
> $verbose && print "$config_name\n";
>
> I get the following output:
>
> pathdeployunit=M:\target\complete-ear-0.0.0.1-SNAPSHOT.ear
>
> Is not the hash User_Preferences initialized with values when I read
> my file? Is there another way to do it?

Apparently the "split" did not work as expected, otherwise you would
no have got the output from the print above - the whole string is in
$config_name, and $config_val is undef, thus the warning.

Regards

Guido