in reply to Reading Data from a file

I haven't looked through all of your script, so just two small hints:

1 Use lexical variables as file handles:

open my $handle, '<', $filename or die "Can't open '$filename' for reading: $!"; while (<$handle>){ ... } close $handle

This will avoid trouble if you forget to close a filehandle, or call functions recursively while a handle is still open

2 If you want to dump the output of an array, set a backslash in front of it:

my @list = qw(foo bar baz); print Dumper \@list; __END__ VAR1 = [ 'foo', 'bar', 'baz' ];

This makes it clearer that it's one variable, and you can easily see where it ends.

Replies are listed 'Best First'.
Re^2: Reading Data from a file
by Anonymous Monk on Apr 03, 2008 at 13:36 UTC
    Thanks I did the change but it did not fix my original problem. Does anyone know why I am getting this problem with the second function and not with the first function when they are both build the same. Thanks.

      I briefly looked at your post, but it contains far too much data and far too much code.

      Please, reduce the data to two or three lines of data. Also, take out all the code that does not relate to the problem. For example, the reading of $dac02_location is useless because we don't know the content of the file. Is the subroutine CreateConfig relevant to the problem or not?

      Also, please provide us with the output you expect and the output you get. It's completely unclear to me why the output you provide is not the output you expect, because all the lines in it are different. And is it really necessary to show us 60 lines of output? I think that three or four relevant lines would be far better.

      From what the comments seem to say, I infer that you might be trying to find the users on one machine. But it seems to me that the extraction of user names does not work, because the output of your script does not contain usernames but complete passwd-style entries. My guess is that possibly your username extraction is wrong or your loop code to find whether a user already exists on the other machine or not. But it's hard to tell in this large pile of code.

      I suggest you replace the loop for finding missing users with a hash lookup, as perlfaq4 says when searching for "duplicate".