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]

Reply via email to