> 
> was hoping for some add'l assistance.  I deleted the bulk of the code out 
> b/c I cannot get it to send me the results of the if clause.  Any ideas?
> I did verify the file is being appended to and is greater that 0 bytes.
> The if -s on the array is running b/c my else clause is creating the run 
> file with a current timestamp???

It is "running", yes, but it is probably attempting to test for a file
that is named the same as the number of elements of the array. That is
my best guess at what Perl is doing, however '-s' takes a
filename/filehandle *NOT* a list.

perldoc -f -s

> 
> -rw-r--r--   1 root     eb          7577 Jun  7 17:53 foreign_tapes.log
> -rw-r--r--   1 root     other          0 Jun  7 17:53 ftapes_runfile
> 
> 
>         use strict;
>         use warnings;
>  
> 
> ## Set and edit variables
> 
>         my $foreigntapes="/usr/local/log/foreign_tapes.log";
>         delete $ENV{'IFS'};
>         local $ENV{'PATH'} = 
> "/usr/epoch/bin:/usr/epoch/EB/bin:/usr/bin:/usr/sbin:/bin:/sbin";
>         #print $ENV{'PATH'},"\n";
> 
> ## Traverse through array and play with data
> 
>         open (OUT, ">$foreigntapes") || die "could not open file:$!";
>         my @ftapes = grep s/^barcode=//, `evmvol -w label_state=1`;
>         print OUT "@ftapes";
>         if ( -s @ftapes ) {
>                      print "file is greater than 0 bytes \n";
>                      `ls -la /usr/local/log/foreign_tapes.log`;

This is a backtick call in void context which is worthless,
non-portable, error prone, slow, etc.  If you want information about a
file use the 'stat' built-in.

perldoc -f stat

>                      foreach (@ftapes) {

This foreach needs to be moved up outside of the file test. Then test
each element of the array. 

>                            print $_;
>                            #`evmlabel -l st_9840_acs_0 -t 9840S -b$_` 
>                      }
>         close (OUT);

A little surprising Perl isn't complaining about the location of this
close, but it truly is an amazing language/interpreter. Since you don't
use OUT after the previous print close it there, which will make the
code much more readable.

>         } else {
>                 my $foo="/tmp/ftapes_runfile";
>                 open (RUNFILE, ">$foo") || die "could not open runfile: 
> $!;"

You open this file and then do nothing with it??

>         }
>         close (RUNFILE);
> 

HTH,

http://danconia.org


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to