On 02/01/2007 07:39 PM, Brad Cahoon wrote:
Hi again,

I have lots of files ( see my first post to this group :) )
they all have two lines simular to:

Ref.: 005803/11-SY (T45) Total Amount

"Ref.:" has a space after it here.

685.00
Lead: ARDA/DILAN/MISS Total Paid 685.00

I want to rename the files with "Lead"-"Ref".txt
When I run the script I get an error :
Use of uninitialized value in concatenation (.) or string at rename.pl line 15,
<DATA> line 70.

and then the same error over 10,000 times before I pull the plug (ctl-c)

sorry to be a pain but I cannot see the error of my ways.

Thanks
Brad

My script:

#!  /usr/bin/perl
use strict;
use warnings;

my $newname;
my $end= '.txt';
my $refno;
my $lead;


my $newfile;
my @files = <c:\\test\\*.txt>;
my $MyWrkLoc = q[c:\\test\\test1\\];

foreach $arg(@files){
    open DATA, "$arg";
    opensub();
    $newname = "$lead-$refno$end";
    rename $arg, "$MyWrkLoc$newname";
}

sub opensub {
    while (<DATA>) {
        chomp($_);
         if ($_ =~ m/^Ref.:(\S)/i) {    # get Reference Number

This regex does not allow "Ref.:" to have a space after it. Consider the possibility that spaces may also be before "Ref.:" . The same goes for "Lead:" .

        $refno=$1;
        $refno=~ s/[\/|-]/_/;
print $refno;
        }
if ($_ =~ m/^Lead:(\S)/i) { # get Lead Name
        $lead=$1;
        $lead=~ s/[\/|-]/_/;
print $lead;
        }
    }
}

## the two print statements are just debuging pls ignore ##




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


Reply via email to