http://qs321.pair.com?node_id=924985


in reply to FIle Directory Problem Driving me crazy.

I quickly reformatted this with Perl::Tidy straight out of the box (no options). Check it out. It was fun to use. ;-)

#!/usr/bin/perl use strict; use warnings; use diagnostics; use Data::Dumper; use Win32::Autoglob; use Cwd; my $keepgoing = "keepgoing"; my @globline; my @argdata; my $mastercount = 0; my $chunklock = "orderlock.cfg"; my $successcheck = "successcheck.cfg"; my $chunksuccesscount = "successlog1.cfg"; my $orderline = "orderline.cfg"; my $trackingversion = 0; # 0 is ORDER 1 = Trackin +g # DoOrd.pl * #### SHIPPINGVERSION #system("pause"); if ( $trackingversion == 0 ) { foreach my $thing (@ARGV) { if ( ( $thing =~ /A-/ ) && ( $thing =~ /.txt/ ) ) { push( @argdata, $thing ); } } # REPLACE FILENAME (ADD A UNIQUE NUMBER) + MOVE TO LIMBO foreach (@argdata) { @datain = (); $oldfilename = $_; open( DGRAB, $oldfilename ) || die("Could not open $oldfilename (DATA TO GRAB) \n"); while (<DGRAB>) { push( @datain, $_ ) } close DGRAB; my $movefilename = @datain[2]; $movefilename =~ s/ /-/g; $movefilename =~ s/[^\w\d()-]+//g; my $range = 8999; my $minimum = 1000; my $random_number = int( rand($range) ) + $minimum; $movefilename = "A-" . $movefilename . "--" . $random_number . + ".txt"; push( @newargdata, $movefilename ); system("move $oldfilename limbo/$movefilename"); } # FOREACH # ASSIGN NEW FILENAME FROM ORDERNAME @argdata = @newargdata; # DUPLICATE FOR MULTIPLE QUANTITIES foreach (@argdata) { @datain = (); my $originalfilenamequantity = ""; $filenamequantity = "limbo/" . $_; open( DGRAB, $filenamequantity ) || die("Could not open $filenamequantity (DATA TO GRAB) \n") +; while (<DGRAB>) { push( @datain, $_ ) } close DGRAB; print "$filenamequantity LOADED \n"; foreach (@datain) { if ( $_ =~ /QUANTITY:::/ ) { print "Q \n"; @quantitysplit1 = split( /QUANTITY:::/, $_ ); @quantitysplit2 = split( /:::/, @quantitysplit +1[1] ); $quantityvalue = @quantitysplit2[0]; print "@quantitysplit1[1] Quantityvalue: $quantityvalu +e \n\n"; } } # DUPLICATE ORDER BASED ON QUANTITY AMOUNTS if ( $quantityvalue > 1 ) { my $originalfilenamequantity = $filenamequantity; # CREATE DUPLICATES BASED ON QUANT +ITY for ( my $count = 1 ; $count <= $quantityvalue ; $count++ +) { @copydatain = (); open( DGRAB, $filenamequantity ) || die("Could not open $filenamequantity (DATA TO GR +AB) \n"); while (<DGRAB>) { push( @copydatain, $_ ) } close DGRAB; my $copydatainstring = join( '', @copydatain ); my $quantitytoreplacestring = "QUANTITY:::" . $quantityvalue . ":::"; $copydatainstring =~ s/$quantitytoreplacestring/QUANTITY:::1:::/; my $duplicatefilenamequantity = $filenamequantity . $c +ount; open( DGRAB, ">$duplicatefilenamequantity" ); print DGRAB "$copydatainstring"; close(DGRAB); } # IF $quantityvalue > 1 ########## PROBLEM IS HERE ########## PROBLEM IS HERE ########## PROBLEM IS HERE # MOVE ORIGINAL TO ../Done/M-archiv # $originalfilenamequantity =~ s/limbo\///; # tried short fuilenames l +ong filenames... yada yada $currentdir = getcwd; $originalfilenamequantity = $currentdir . "/" . $originalfilenamequantity; print "Currentdir : $currentdir \n FILE: :$originalfilenamequantity: \n"; print "move $originalfilenamequantity 1.txt \n"; system("move $originalfilenamequantity .."); } # FOREACH (@datain) } # foreach die; ########## PROBLEM IS HERE ########## PROBLEM IS HERE ########## PROBLEM IS HERE


"...the adversities born of well-placed thoughts should be considered mercies rather than misfortunes." — Don Quixote