Pytanie : Potrzeba iterate przez wszystkie the kartoteka w dir w perl i gdzie indziej

Cześć,

I am czytanie przez przodować prześcieradło, wybierać wybierać unix lokacja, iść tam  i wtedy próbować wszystkie .txt kartoteka od tam  w inny adresowy jeden poziom up.

I am ten błąd. Pls help.

-------------------------------------------

Use wartość wartość w concatenation (.) lub zawiązywać przy Copy_Baseline.pl przy the glob oświadczenie line.
/ms/user/s/sayantag/Baseline/
-------------------------------------------


(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
#! /usr/bin/perl5.10 - w


używać ostrzeżenie;
use Spreadsheet:: WriteExcel:: Duży;
use Spreadsheet:: ParseExcel;
używać surowy;
use IO:: Skalar;
use Dane:: Dumper;

mój CFP = "/ms/user/s/sayantag/";
mój $new_parser = Spreadsheet:: ParseExcel->new ();
mój $new_workbook = $new_parser->parse (CFP. "Source.xls");
mój $new_worksheet;

mój $curr_etl = "wf_OTC_Taxlots_Open";


dla $new_worksheet ($new_workbook->worksheets ()) {
następnie jeśli $new_worksheet-> {Imię} eq "WF";
#print "xyb";
mój ($row_min, $row_max) = $new_worksheet->row_range ();
mój ($col_min, $col_max) = $new_worksheet->col_range ();

 dla mój $row ($row_min. $row_max) {##First for##
 dla mój $col ($col_min. $col_max) {##Second for##
   mój $cell = $new_worksheet->get_cell ($row, $col);
     jeżeli ($col==0 && $row! =0 && ($new_worksheet->get_cell ($row, $col) - >value eq "$curr_etl"))  {
       mój $wf_loc = $new_worksheet->get_cell ($row, $col+2) - >value;

       chdir ($wf_loc) lub kostka do gry "$! ";
       druk "$wf_loc";

       mój @delta_files = glob "$ARGV [(0)] *.txt";

       foreach mój $txt_file (@delta_files) {
         `cp $txt_file ../Delta_ETL/ `;
           }
         }
       }
     }
   }

Odpowiedź : Potrzeba iterate przez wszystkie the kartoteka w dir w perl i gdzie indziej

Twój aktualizacja ty wysyłać podczas gdy I pisać wysyłać…
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
#! /usr/bin/perl5.10

# - w być niepotrzebny z use ostrzeżenie
używać ostrzeżenie;
use Spreadsheet:: WriteExcel:: Duży;
use Spreadsheet:: ParseExcel;
używać surowy;
use IO:: Skalar;
use Dane:: Dumper;
use Kartoteka:: Odbitkowy qw (cp);

mój CFP = "/ms/user/s/sayantag/";
mój $new_parser   = Spreadsheet:: ParseExcel->new ();
mój $new_workbook = $new_parser->parse (CFP. "Source.xls");

mój $curr_etl = "wf_OTC_Taxlots_Open";
mój $wf_name = substr $curr_etl, 3;
drukować "The obieg imię być $wf_name \ n";

dla  mój $new_worksheet ($new_workbook->worksheets ()) {
    następnie jeśli $new_worksheet-> {Imię} eq "WF";
    #print "xyb";
    mój ($row_min, $row_max) = $new_worksheet->row_range ();
    mój ($col_min, $col_max) = $new_worksheet->col_range ();

    dla mój $row ($row_min. $row_max) {##First for##
        mój $cell = $new_worksheet->get_cell ($row, (0));
        jeżeli (definiować $cell i $cell->value eq $curr_etl)  {
            mój $wf_loc = $new_worksheet->get_cell ($row, 2) - >value;

            druk "$wf_loc";

            opendir DIR, $wf_loc
                lub kostka do gry "móc $wf_loc: $! ";
            mój @delta_files = grep m {^delta_$ {wf_name} _Baseline \ .txt$}, readdir DIR;
            closedir DIR;

            foreach mój $txt_file (@delta_files) {
                cp "$wf_loc/$txt_file" "$wf_loc/. /Delta_ETL/$txt_file"
                    lub kostka do gry "móc cp $wf_loc/$txt_file: $! ";
            }
        }
    }
}
Inne rozwiązania  
 
programming4us programming4us