the reason to this being you need to append "my" to declare each variable before use..
my $file; my $in_dir; my $tstopen; etc.. try phrase it like this: #!/usr/bin/perl use strict; use warnings; # Open Files my $in_dir; opendir(IN_DIR, "/opt/crxml/tstdir") or die "directory does not exist"; # Read Directory while (my $file = readdir(IN_DIR)) { next if $file =~ /^\.\.?$/; print "$file found in $in_dir\n"; chomp $file; #Open Files open (FH, "< $file") or die "could not open $file"; my $tstopen = <FH>; chomp $tstopen; print "$tstopen\n"; while (<FH>) { my @fields1 = split /:/, $tstopen; print "$fields1[0]\n"; print "$fields1[1]\n"; print "$fields1[2]\n"; print "############## End of Test Open ############\n\n"; } } maybe that'll work. the "use strict" forces declaration of all variables using my() before use. i can't remember the perldoc command to see more info on this, although i know there is one. dan "Chuck Belcher" <[EMAIL PROTECTED]> wrote in message 000d01c26c0a$f5a4b480$1901a8c0@haley">news:000d01c26c0a$f5a4b480$1901a8c0@haley... > I added the use strict and use warnings now I get the following... > > Global symbol "$file" requires explicit package name at crxml.pl line 8. > Global symbol "$in_dir" requires explicit package name at crxml.pl line > 10. > Global symbol "$tstopen" requires explicit package name at crxml.pl line > 15. > Global symbol "@fields1" requires explicit package name at crxml.pl line > 19. > Execution of crxml.pl aborted due to compilation errors. > > Code.. > > #!/usr/bin/perl > use strict; > use warnings; > # Open Files > opendir(IN_DIR, "/opt/crxml/tstdir") or die "directory does not exist"; > > # Read Directory > while ($file = readdir(IN_DIR)) { > next if $file =~ /^\.\.?$/; > print "$file found in $in_dir\n"; > chomp $file; > > #Open Files > open (FH, "< $file") or die "could not open $file"; > $tstopen = <FH>; > chomp $tstopen; > print "$tstopen\n"; > while (<FH>) { > @fields1 = split /:/, $tstopen; > print "$fields1[0]\n"; > print "$fields1[1]\n"; > print "$fields1[2]\n"; > print "############## End of Test Open ############\n\n"; > } > } > > -----Original Message----- > From: nkuipers [mailto:[EMAIL PROTECTED]] > Sent: Friday, October 04, 2002 7:49 PM > To: Chuck Belcher > Cc: [EMAIL PROTECTED] > Subject: RE: Will not read line and split. > > > Put > > use strict; > use warnings; > > at the top of most programs you ever write. As for failing calls to > open(), > phrase the call like this: > > open FH, "< $file" or die "Could not read $file: $!"; > > Once the handle is opened successfully, iterate through the file line by > line > like this: > > while (<FH>) { ... } #in this block, $_ holds contents of current line > > See if cleaning things up a bit like this helps. :) > > Regards, > > Nathanael > > > >===== Original Message From "Chuck Belcher" <[EMAIL PROTECTED]> > > >===== I can now get the first part to open and read a file, however, It > > >still does not work when I am reading the directory. The print $file > >found in $in_dir does work it displays a list of files in the > >directory. The open (IN1, "<$file"); does not appear to open the files. > > >I am loosing hair by the minute. > > > >#!/usr/bin/perl > ># Input Files > >$in_dir = "/opt/crxml/tstdir"; > ># Open Files > >opendir(IN_DIR, "$in_dir"); > ># Read Directory > >while ($file = readdir(IN_DIR)) { > > next if $file =~ /^\.\.?$/; > > print "$file found in $in_dir\n"; > > chomp $file; > >#Open Files > > open (IN1, "< $file"); > > $tstopen = <IN1>; > > chomp $tstopen; > > print "$tstopen\n"; > > @fields1 = split /:/, $tstopen; > > print "$fields1[0]\n"; > > > >chuck > > > >-----Original Message----- > >From: Mark Anderson [mailto:[EMAIL PROTECTED]] > >Sent: Friday, October 04, 2002 7:09 PM > >To: Chuck Belcher > >Subject: RE: Will not read line and split. > > > > > >What errors are you getting? Are you using strict and warnings? I > >would change your open statement in the first example to: open (IN, > >"/opt/crxml/tstdir/updt1.dat") or die "file failed to open $!"; > > > > /\/\ark > > > >-----Original Message----- > >From: Chuck Belcher [mailto:[EMAIL PROTECTED]] > >Sent: Friday, October 04, 2002 3:59 PM > >To: [EMAIL PROTECTED] > >Subject: Will not read line and split. > > > > > >My goal is to spit a file or files that are in a specific directory. > >My problem is that I can't read the file. > > > >Attempt to read file: > >#!/usr/bin/perl > >open (IN, " < /opt/crxml/tstdir/updt1.dat"); > >until (eof IN) { > > $line = <IN>; > > chomp $line; > > print $line; > > @fields = split /:/, $line; > > print "$fields[0]\n"; > >} > > > >Same attempt but with directory read > >#!/usr/bin/perl > ># Input Files > >$in_dir = "/opt/crxml/tstdir"; > ># Open Files > >opendir(IN_DIR, "$in_dir"); > ># Read Directory > >while ($file = readdir(IN_DIR)) { > > next if $file =~ /^\.\.?$/; > > print "$file found in $in_dir\n"; > > chomp $file; > >#Open Files > > open (IN1, "< $file"); > > $tstopen = <IN1>; > > chomp $tstopen; > > print "$tstopen\n"; > > @fields1 = split /:/, $tstopen; > > print "$fields1[0]\n"; > > > >Does anyone have any idea what I am doing wrong .. OS is solaris 8. > > > >Chuck > > > > > >-- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > "Ain't no blood in my body, it's liquid soul in my veins" ~Roots Manuva > > > -- > 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]