Sponsored Content
Top Forums Shell Programming and Scripting Opening Mulitple files using For loop in Perl Post 302313580 by Raynon on Wednesday 6th of May 2009 05:10:56 AM
Old 05-06-2009
Opening Mulitple files using For loop in Perl

Hi All,

I have a total of ten file to open in the Perl script and i am using a for loop to open each file and capture some strings inside each file.
Unfortunately, i encounter the below syntax error.
I think there should be something wrong with this term reports_${counting}_${_[0]}.txt but i do not know how to modify the code to suit this.
Can any expert help me with this ?

The file names which i wish to open are :
reports_1_MAIN
reports_2_MAIN
reports_3_MAIN
...
...
reports_10_MAIN




Code:
#!/usr/local/bin/perl

use Env;               # for processing environment variables
use strict;
use warnings;

my $test = "MAIN";
capture_LOT_DATE ($test);
 

sub capture_LOT_DATE {
            my $counting = 1;
            my @fields;
            my @DATE;
            my @date;
            my @lotsuffix;
   
             for ($counting = 1; $counting <= 10 ; $counting++ ) {
                     open(FH, "< $HISTORY/reports_${counting}_${_[0]}.txt" ) or die $!;
                             while( <FH> ) {
                                     my @Fld = split(' ', reports_${counting}_${_[0]}.txt);
                                     if ( $Fld[1] eq 'LOTSUFFIX=' ) {
                                             $lotsuffix[$counting] = $Fld[2];
                                             last;
                                     }
                                    if ( $Fld[1] eq 'DATE=' ) {
                                             $DATE[$counting] = $Fld[2];
                                            @fields = split(/-/, $DATE[$counting]);
                                             $date[$counting] = sprintf {"%s-%s",$fields[1],$fields[2]};
                                     }
                             }
                             close FH;
             }
}


Syntax Error
Code:
Bareword found where operator expected at near "${counting}_"
        (Missing operator before _?)
Bareword "txt" not allowed while "strict subs" in use 
Bareword "files_extracted" not allowed while "strict subs" in use 
Bareword "txt" not allowed while "strict subs" in use

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Opening Perl

I have gone to /usr/bin/ and click on perl but notting happens.also notting happens when i click on c/c++ or any other program whats wrong ? (2 Replies)
Discussion started by: perleo
2 Replies

2. Shell Programming and Scripting

Opening Files and checking contents in Perl

Hi All, I need some expert help in performing the following in Perl. I have a code below but it doesn;t seem to work. Can any expert give me some advice? Below are the requirements 1) Open numerous files assigned to an array @FILES. Note that the files are always named with the term... (7 Replies)
Discussion started by: Raynon
7 Replies

3. Shell Programming and Scripting

Need help on Mulitple files mutliple actions

Hi all, I have mistkanely gzipped twice an entire folder and sub folders, and also renamed the files during that process. I am trying to undo this, and I need help to create the batch to work on it. All folders are under my images directory, I have a output.txt file that holds all the... (1 Reply)
Discussion started by: saariko
1 Replies

4. Shell Programming and Scripting

Help with Find/Replace Javascript Injected Strings in mulitple files

Hi, guys, I'm not a high-end programmer, but I've been trying to write a script to remove all of the b.rtbn2.cn (and b.adserv.cn and any future variation) injected script tags on the server. (Still working on security fixes to prevent it in the future, just need to clean up now.) My approach is... (1 Reply)
Discussion started by: zzlegs
1 Replies

5. UNIX for Dummies Questions & Answers

Foreach loop to run a perl script on multiple files

Hi, I have thousands of files in a directory that have the following 2 formats: 289620178.aln 289620179.aln 289620180.aln 289620183.aln 289620184.aln 289620185.aln 289620186.aln 289620187.aln 289620188.aln 289620189.aln 289620190.aln 289620192.aln.... and: alnCDS_1.fasta (1 Reply)
Discussion started by: greptastic
1 Replies

6. UNIX for Dummies Questions & Answers

opening mulitple different videos with mplayer and placing them in x,y coordinates?

howdy. can you place mplayer windows on the screen anywhere? i would like to open four movie files from command line and make them show up on screen like this ----- ----- | 1 | | 2 | ----- ----- | 3 | | 4 | ----- ----- hopefully my ascii representation makes some sense. and i would... (1 Reply)
Discussion started by: danpaluska
1 Replies

7. Shell Programming and Scripting

Perl-opening a file then copying files

Good morning guys!! Im still practicing with Perl and now Im trying to open a file, and copy its contents to another file. Them I want to remeove the information out of the orginal file after it is copied over. The flow should be messages-->messages1-->messages2. Kind of like a log... (1 Reply)
Discussion started by: bigben1220
1 Replies

8. UNIX for Advanced & Expert Users

FTP failed to copy mulitple files from multiple directory

I am using below scripts to copy all the files from multiple folders. By executing individually command i am able to copy all the files but using scripts only getting first file. System is ignoring the second CD and mget command. HOST=server.com USER=loginid PASSWD="abc" echo "open $HOST... (6 Replies)
Discussion started by: meetvipin
6 Replies

9. Shell Programming and Scripting

substitution to mulitple files

Hello all, I am trying to make a script that will apply a substitution to any number of files given on the command line. Example would be ~/Unix/script/subst car boat myFile1.txt myFile2.txt myFile3.txt This is the code I have so far but it does not function as needed. PAT=$1 shift... (10 Replies)
Discussion started by: ramn214
10 Replies

10. Shell Programming and Scripting

Loop Script and not opening files containing spaces

Hello, I wrote a simple script, that basically wait for a *.dat-file in a certain folder, which is always a zipped file and extracts it. It worked before and i changed nothing in the script, but since last week i have the problem, that it doesnt extract files containing a space. How do i make... (4 Replies)
Discussion started by: blend_in
4 Replies
Env(3pm)						 Perl Programmers Reference Guide						  Env(3pm)

NAME
Env - perl module that imports environment variables as scalars or arrays SYNOPSIS
use Env; use Env qw(PATH HOME TERM); use Env qw($SHELL @LD_LIBRARY_PATH); DESCRIPTION
Perl maintains environment variables in a special hash named %ENV. For when this access method is inconvenient, the Perl module "Env" allows environment variables to be treated as scalar or array variables. The "Env::import()" function ties environment variables with suitable names to global Perl variables with the same names. By default it ties all existing environment variables ("keys %ENV") to scalars. If the "import" function receives arguments, it takes them to be a list of variables to tie; it's okay if they don't yet exist. The scalar type prefix '$' is inferred for any element of this list not prefixed by '$' or '@'. Arrays are implemented in terms of "split" and "join", using $Config::Config{path_sep} as the delimiter. After an environment variable is tied, merely use it like a normal variable. You may access its value @path = split(/:/, $PATH); print join(" ", @LD_LIBRARY_PATH), " "; or modify it $PATH .= ":."; push @LD_LIBRARY_PATH, $dir; however you'd like. Bear in mind, however, that each access to a tied array variable requires splitting the environment variable's string anew. The code: use Env qw(@PATH); push @PATH, '.'; is equivalent to: use Env qw(PATH); $PATH .= ":."; except that if $ENV{PATH} started out empty, the second approach leaves it with the (odd) value "":."", but the first approach leaves it with ""."". To remove a tied environment variable from the environment, assign it the undefined value undef $PATH; undef @LD_LIBRARY_PATH; LIMITATIONS
On VMS systems, arrays tied to environment variables are read-only. Attempting to change anything will cause a warning. AUTHOR
Chip Salzenberg <chip@fin.uucp> and Gregor N. Purdy <gregor@focusresearch.com> perl v5.18.2 2013-11-04 Env(3pm)
All times are GMT -4. The time now is 09:36 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy