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

RE: Uninitialized Value Error

Thread Previous | Thread Next
From:
Timothy Johnson
Date:
February 25, 2002 13:27
Subject:
RE: Uninitialized Value Error
Message ID:
C0FD5BECE2F0C84EAA97D7300A500D5002580FD0@SMILEY

Getting rid of 'my' is not your only option.  Among other things, you can
put the code for getting info from filehandles in a subroutine and pass the
variable by reference or return the value so that you can still have it to
use for your format command.

Example 1:
my $var;
$var = &mysub($var);
do something with $var...

sub mysub{
   $subvar = $_[0];  #$subvar now has the value of $var
   do something...
   return $subvar;   #$var will now have the value of $subvar
}

Example 2:
my $var;
&mysub(\$var);

sub mysub{
   do something to ${$_[0]};   #dereference the first argument
}

-----Original Message-----
From: Lyon, Justin [mailto:Justin.Lyon@bankofamerica.com]
Sent: Monday, February 25, 2002 12:53 PM
To: slhgkh5@attbi.com; beginners@perl.org
Subject: RE: Uninitialized Value Error


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


--------------------------------------------------------------------------------
This email may contain confidential and privileged 
material for the sole use of the intended recipient. 
If you are not the intended recipient, please contact 
the sender and delete all copies.

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