At 11:31 AM 12/11/01 -0600, Booher Timothy B 1stLt AFRL/MNAC wrote: >Over the last evening I have reviewed these scripts and understand what is >going on, but they still don't quite solve my problem. I want to fix the >following situation. > >Image4.jpg, image5.jpg, image6.jpg - to --> foo78.jpg, foo79.jpg, foo80, etc >.. .. > >This means I want to change the number not just the word involved. So for >example I would want to give the parameter StartAt: '78' and 's/image/foo' - >say I wanted to start at any arbitrary number given another arbitrary >number, by specifing the offset (here 74). This is what I am having trouble >doing
Ah, okay, missed that part. Here's a couple of solutions. This one makes the second parameter a string containing a Perl expression: # my_rename('Image(\d+).jpg', '"Foo" . ($1+74) . ".jpg"'); sub my_rename { my $from = qr/^$_[0]$/s; for (glob "*") { next unless /$from/; my $to = eval "$_[1]"; rename $_, $to unless -e $to; } } That's rather more flexible than you asked for. If you want the offset to be a parameter, then it can be extended quite easily: # my_rename('Image(\d+).jpg', '"Foo" . ($1+$_[2]) . ".jpg"', 74); sub my_rename { my $from = qr/^$_[0]$/s; for (glob "*") { next unless /$from/; my $to = eval "$_[1]"; rename $_, $to unless -e $to; } } -- Peter Scott Pacific Systems Design Technologies http://www.perldebugged.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]