> Why don't I Get IP addresses in the IP Address column of the report
below. The data is there if I do a print after the split of the value
in %GAA_Up
foreach $GS_IPAddr (keys(%GAA_Up)) {
open (UP, ">>$GS_Report") || die "Could not open file
$GS_Report : $!\n";
($GS_Location,$GS_IPAddr,$GS_Time)=split(/\t/,$GAA_Up{$GS_IPAddr
});
write(UP);
close(UP);
}
I imagine (depending upon you data) you're running into a lexical scoping
problem. For one thing its *not* a good idea to use $GS_IPAddr as both
your loop key and an assigned to var from the split. Its confusing and
unnecessary and buys you nothing (but, maybe the cost of one scalar).
However, there's a little magic in how perl handles foreach loop vars as
far as scoping goes and when you're using it to work w/ a format ... good
luck. Or here, bad luck. Adding warnings to your script and the crucial
part is (line 40 is the UP format line):
Use of uninitialized value in formline at /tmp/form.pl line 40.
Use of uninitialized value in formline at /tmp/form.pl line 40.
Use of uninitialized value in formline at /tmp/form.pl line 40.
Because you don't scope the other split vars, they become global and just
(luckily) get attached to the format as you wanted them. But $GS_IPAddr is
scoped as the foreach loop var and so isn't global enough to make the
grade. It doesn't exist outside those curlies and so - no IP for you!
Strict/warnings - its not just a good idea, its a Best Practice - which is
close enough to being a law ;->
a
Andy Bach
Systems Mangler
Internet: [EMAIL PROTECTED]
VOICE: (608) 261-5738 FAX 264-5932
"So it goes ...."
Kurt Vonnegut, Jr. (November 11, 1922 ? April 11, 2007)
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs