
16.09.2007, 01:42
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме: 1948091
Репутация:
1686
|
|
Код:
#!/usr/bin/perl -w
use strict;
# use File::Copy; ## это не нужно
my $num=0;
my $dir="/path/to/dir/";
opendir(DIR, $dir) or die $!;
my @files=readdir(DIR);
foreach my $file (@files) {
# $_ =~ m/([a-zA-Z])\d+?/g; # <= вот сдесь у меня проблема! ## про регексп я написал, исходя из того, что в дире с файлами, которые надо переименовать, могут находиться те, которые переименовывать не надо.. если это не так, то можно и без регулярного выражения обойтись.. но, допустим, файлы, которые надо переименовывать оканчиваются на 'JPG' (как у тебя написано), тогда мы переименовываем, проверяя на это:
rename $dir.$file, $dir.++$num.'.jpg' if $file =~ /JPG/; ## ну понятное дело ренейму надо знать в какой дире файлы эти лежат )
}
closedir(DIR);
использование strict; и как следствие my -- тут не совсем целесообразно тк скрипт маленький и я думаю имена всех переменных можно и самому запомнить - я это к тому чтобы новички не вбили себе что надо всегда юзать стрикт и все переменные объявлять через my - вот вообще никогда его не юзаю и пишу - нормально работающие скрипты -- тут есть выбор
|
|
|