Vraag : Behoefte om door alle dossiers in een dir in perl te herhalen en hen elders te kopiëren

Hallo, blinkt de

I am lezing door blad uit, daar uit selecterend een Unixplaats, gaand en dan proberend om daar alle .txt dossiers van in een andere folder te kopiëren één niveau die up.

I am deze fout krijgen. Pls help.



Use van uninitialized waarde in aaneenschakeling (.) of koord bij Copy_Baseline.pl bij de globverklaring line.
/ms/user/s/sayantag/Baseline/



" codeBody "
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


gebruiks waarschuwingen;
gebruiks Spreadsheet:: WriteExcel:: Groot;
gebruiks Spreadsheet:: ParseExcel;
strikt gebruik;
gebruik IO:: Scalair;
gebruiks Gegevens:: Kipwagen;

mijn CFP = „/ms/user/s/sayantag/“;
mijn $new_parser = Spreadsheet:: ParseExcel->new ();
mijn $new_workbook = $new_parser->parse (CFP. „Source.xls“);
mijn $new_worksheet;

mijn $curr_etl = „wf_OTC_Taxlots_Open“;


voor $new_worksheet ($new_workbook->worksheets ()) {
tenzij daarna $new_worksheet-> {Naam} eq „WF“;
#print „xyb“;
mijn ($row_min, $row_max) = $new_worksheet->row_range ();
mijn ($col_min, $col_max) = $new_worksheet->col_range ();

 voor mijn $row ($row_min. $row_max) {##First for##
 voor mijn $col ($col_min. $col_max) {##Second for##
   mijn $cell = $new_worksheet->get_cell ($row, $col);
     als ($col==0 && $row! =0 && ($new_worksheet->get_cell ($row, $col) - >value eq „$curr_etl“))  {
       mijn $wf_loc = $new_worksheet->get_cell ($row, $col+2) - >value;

       chdir ($wf_loc) of matrijzen „$! “;
       druk „$wf_loc“;

       mijn @delta_files = glob „$ARGV [0] *.txt“;

       foreach mijn $txt_file (@delta_files) {
         `cp $txt_file ../Delta_ETL/ `;
           }
         }
       }
     }
   }

Antwoord : Behoefte om door alle dossiers in een dir in perl te herhalen en hen elders te kopiëren

Veranderd om uw updates aan te passen postte u terwijl ik dat… schreef
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 is overtollig met gebruikswaarschuwingen
gebruiks waarschuwingen;
gebruiks Spreadsheet:: WriteExcel:: Groot;
gebruiks Spreadsheet:: ParseExcel;
strikt gebruik;
gebruik IO:: Scalair;
gebruiks Gegevens:: Kipwagen;
gebruiks Dossier:: Exemplaar qw (cp);

mijn CFP = „/ms/user/s/sayantag/“;
mijn $new_parser   = Spreadsheet:: ParseExcel->new ();
mijn $new_workbook = $new_parser->parse (CFP. „Source.xls“);

mijn $curr_etl = „wf_OTC_Taxlots_Open“;
mijn $wf_name = substr $curr_etl, 3;
druk de „Werkschemanaam is $wf_name \ n“;

voor  mijn $new_worksheet ($new_workbook->worksheets ()) {
    tenzij daarna $new_worksheet-> {Naam} eq „WF“;
    #print „xyb“;
    mijn ($row_min, $row_max) = $new_worksheet->row_range ();
    mijn ($col_min, $col_max) = $new_worksheet->col_range ();

    voor mijn $row ($row_min. $row_max) {##First for##
        mijn $cell = $new_worksheet->get_cell ($row, 0);
        als (bepaalde $cell en $cell->value eq $curr_etl)  {
            mijn $wf_loc = $new_worksheet->get_cell ($row, 2) - >value;

            druk „$wf_loc“;

            opendir DIR, $wf_loc
                of de matrijs „kon geen $wf_loc openen: $! “;
            mijn @delta_files = grep m {{wf_name} _Baseline ^delta_$ \ .txt$}, readdir DIR;
            closedir DIR;

            foreach mijn $txt_file (@delta_files) {
                cp „$wf_loc/$txt_file“ „$wf_loc/. /Delta_ETL/$txt_file“
                    of de matrijs „kon niet cp $wf_loc/$txt_file: $! “;
            }
        }
    }
}
Andere oplossingen  
 
programming4us programming4us