Perl Scripting problem - please help!

Discussion in 'Perl' started by Mark, Mar 17, 2005.

  1. Mark

    Mark Guest

    Hello,

    I am new to PERL and I want to do a simple function (in LINUX):

    find all files that have the extension pseudo.pdf and put the file
    names in a file;
    parse the file and change all file names current filename plus date:

    pseudo+date+.pdf

    Move the new file to pseudo directory :

    I have written the code which seems to work without any errors and has
    been accepted by PERL:

    #!/usr/bin/perl -w
    open (pdfs, "/var/www/html/reports/shops/pdflist.txt")
    ||Error('open','file');
    @fnames=<pdfs>;
    close (pdfs);
    ($second,$minute,$hour,$day,$month,$year,$weekday,$dayofyear,$isdst)=localtime(time);
    $cmonth=$month+1;
    $cyear=($year % 100);
    $fdate=$cmonth.'-'.$day.'-'.$cyear;
    $ext='.pdf';
    foreach $pdffile (@fnames2) {
    $pdffile=$pdffile.$fdate.$ext;
    }
    $n=1;
    foreach $fnames (@fnames) {
    $cnt=index($fnames,".pdf");
    $newfile=substr($fnames,0,$cnt);
    $newpdf=$newfile.$fdate.$ext;
    print "fnames: $fnames \n";
    print "new file: $newfile \n";
    print "newpdf: $newpdf \n";
    print "old= /var/www/html/reports/shops/$fnames \n";
    print "new= /var/www/html/reports/shops/$newfile/$newpdf \n";
    rename("/var/www/html/reports/shops/$fnames","/var/www/html/reports/shops/
    $newfile/$newpdf");
    print "\n";

    }


    I cannot get the rename function to work even if I use the same
    directory. I don't get any errors and the file permissions are set
    correctly on the files.

    Anyone know why this does not work?

    Thanks,

    Mark
     
    Mark, Mar 17, 2005
    #1
    1. Advertising

  2. On 17/03/2005, Mark wrote:

    > ...
    > rename("/var/www/html/reports/shops/$fnames","/var/www/html/reports/sh
    > ops/ $newfile/$newpdf"); print "\n";
    > ...
    > I cannot get the rename function to work even if I use the same
    > directory. I don't get any errors and the file permissions are set
    > correctly on the files.


    1) Don't post here - this newsgroup does not exist
    2) What does
    rename($from, $to) or warn("cannot rename '$from': $!");
    tell you?

    --
    felix
     
    Felix Geerinckx, Mar 17, 2005
    #2
    1. Advertising

  3. Mark

    Jim Gibson Guest

    In article <>, Mark
    <> wrote:

    > Hello,
    >
    > I am new to PERL and I want to do a simple function (in LINUX):
    >
    > find all files that have the extension pseudo.pdf and put the file
    > names in a file;
    > parse the file and change all file names current filename plus date:
    >
    > pseudo+date+.pdf
    >
    > Move the new file to pseudo directory :
    >
    > I have written the code which seems to work without any errors and has
    > been accepted by PERL:
    >
    > #!/usr/bin/perl -w
    > open (pdfs, "/var/www/html/reports/shops/pdflist.txt")
    > ||Error('open','file');
    > @fnames=<pdfs>;
    > close (pdfs);
    >
    > ($second,$minute,$hour,$day,$month,$year,$weekday,$dayofyear,$isdst)=localtime
    > (time);
    > $cmonth=$month+1;
    > $cyear=($year % 100);
    > $fdate=$cmonth.'-'.$day.'-'.$cyear;
    > $ext='.pdf';
    > foreach $pdffile (@fnames2) {
    > $pdffile=$pdffile.$fdate.$ext;
    > }
    > $n=1;
    > foreach $fnames (@fnames) {
    > $cnt=index($fnames,".pdf");
    > $newfile=substr($fnames,0,$cnt);
    > $newpdf=$newfile.$fdate.$ext;
    > print "fnames: $fnames \n";
    > print "new file: $newfile \n";
    > print "newpdf: $newpdf \n";
    > print "old= /var/www/html/reports/shops/$fnames \n";
    > print "new= /var/www/html/reports/shops/$newfile/$newpdf \n";
    > rename("/var/www/html/reports/shops/$fnames","/var/www/html/reports/shops/
    > $newfile/$newpdf");
    > print "\n";
    >
    > }
    >
    >
    > I cannot get the rename function to work even if I use the same
    > directory. I don't get any errors and the file permissions are set
    > correctly on the files.
    >
    > Anyone know why this does not work?


    Perhaps because the directory /var/www/html/reports/shops/$newfile does
    not exist?


    ----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
    http://www.newsfeeds.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
    ---= East/West-Coast Server Farms - Total Privacy via Encryption =---
     
    Jim Gibson, Mar 17, 2005
    #3
  4. Mark

    Joe Smith Guest

    Mark wrote:

    > rename("/var/www/html/reports/shops/$fnames","/var/www/html/reports/shops/
    > $newfile/$newpdf");
    >
    > I don't get any errors ...


    How can you say you don't get any errors when you don't even check
    to see if any errors occurred?

    rename($old,$new) or warn("rename($old,$new) failed: $!\n");

    -Joe
     
    Joe Smith, Mar 18, 2005
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    4
    Views:
    522
    Chris Uppal
    May 5, 2005
  2. KK
    Replies:
    2
    Views:
    596
    Big Brian
    Oct 14, 2003
  3. Ron Stephens
    Replies:
    23
    Views:
    2,858
    Ron Stephens
    Apr 12, 2004
  4. DaveInSidney
    Replies:
    0
    Views:
    424
    DaveInSidney
    May 9, 2005
  5. Mark
    Replies:
    1
    Views:
    90
    Arndt Jonasson
    Mar 18, 2005
Loading...

Share This Page