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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Monday, February 25, 2002 10:15 AM
> To: [EMAIL PROTECTED]
> 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to