develooper Front page | perl.beginners | Postings from February 2002

RE: Uninitialized Value Error

Thread Previous | Thread Next
From:
Luke Bakken
Date:
February 25, 2002 13:17
Subject:
RE: Uninitialized Value Error
Message ID:
Pine.BSO.4.44.0202251307460.15835-100000@ics-server.interface-net.com
Predeclare all of the variables you're using in your format at the top of
the script with my:

my ($field1, $field2, $field3);

this way you can still keep the benefits of use strict


On Mon, 25 Feb 2002, Lyon, Justin wrote:

> Hmmmm.  Well, I think the problem is that you're using too strict
> guidelines.  "my" will restrict you from using a variable outside the
> current scope, so you won't be able to access it come time to format.  The
> quickest way arround that is to get rid of your "use strict;" line, and then
> get rid of all the "my" declarations.  Then you'll be using all global
> variables, and it should run fine.  If you want to use a less global style,
> try using a different scope identifier (but not "my").
>
> Justin
>
> -----Original Message-----
> From: slhgkh5@attbi.com [mailto:slhgkh5@attbi.com]
> Sent: Monday, February 25, 2002 10:15 AM
> To: beginners@perl.org
> Subject: Uninitialized Value Error
>
>
> When I run the following script, I get the following
> error.  Being new to perl, I am having trouble
> identifying where the error is at.
>
> Thanks for your help.
>
> Error:
> Use of uninitialized value at user_access1.pl line 43,
> <F_ACCESS> chunk 29.
>
> Here is the code:
>
> #!/usr/bin/perl -w
>
> use strict;
>
> use constant PATH
> => "/usr/local/scripts/security/sybase/user/";
> use constant GROUPS => "group_files.doc";
> use constant ACCESS => "user_access_all.doc";
>
> open F_GROUPS, PATH.GROUPS    or die "Can't open:  $!";
>
> while (<F_GROUPS>) {
>     chomp(my @field = split /:/);
>     my $field1 = $field[0];
>     my $field2 = $field[1];
>     my $field3 = $field[2];
>
>     open OUT, ">$field[1]"  or die "Can't open:  $!";
>     open F_ACCESS, PATH.ACCESS    or die "Can't open:
> $!";
>
>     while (<F_ACCESS>) {
>         chomp ();
>         my $user = $_;
>         if (/$field[0]/) {
>             write OUT;}
>            }
>     close OUT                   or die "Can't close:
> $!";
>     close F_ACCESS              or die "Can't close:
> $!";
>
>
> #unlink
> glob "/usr/local/scripts/security/sybase/user/*.txt";
> exit;
> }
>
> format OUT_TOP =
> |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> |||||||||||
>
> Company Name
> first column        second column               Third
> Column
> _____________________________________________________
> ...
> format OUT =
> @<<<<<<<<<<<<<< @<<<<<<<<<<<<<< @<<<<<<<<<<<<<<
> my $field1,          my $field2,                     my
> $field3
> ...
>
> --
> To unsubscribe, e-mail: beginners-unsubscribe@perl.org
> For additional commands, e-mail: beginners-help@perl.org
>
> --
> To unsubscribe, e-mail: beginners-unsubscribe@perl.org
> For additional commands, e-mail: beginners-help@perl.org
>


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About