Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : ‘ҐаЈҐ©                               2:5020/400     15 Mar 2007  11:07:14
 To : Artem Chuprina
 Subject : Re: Про копирования каталогов...
 -------------------------------------------------------------------------------- 
 
 Привет...
 
 Artem Chuprina пишет:
 
 AC> Sergey -> Artem Chuprina  @ Tue, 13 Mar 2007
 
 12:13:09 +0000 (UTC):
 
 AC> Пробую.
 
 AC> sub copy_dir # имена функций большими буквами
 
 применяются для констант
 
 AC> {
 AC>       my $exc_fn = -e "$ETC/$SERVER.excl" ?
 
 "$ETC/$SERVER.excl" : "$ETC/default.excl"
 
 AC>       open(my $excf, '<', $exc_fn) #
 
 поскольку файлхендл - my, он автомагически
 закроется при выходе из функции
 
 AC>        or die "Cannot open $exc_fn: $!"
 AC>       my %excl = map {chomp; $_=>1} <$excf>;
 AC>       # раз уж мы проверяем исключения на
 
 точное совпадение, то и надо
 
 AC>       # это делать через проверку вхождения
 
 в хэш
 
 AC>       opendir(my $dh, $fromdir)
 AC>        or dir "Cannot open directory
 
 $fromdir: $!"
 
 AC>       foreach (<$dh>) {
 AC>        next if /^\./ || $excl{$_} ||
 
 ! -d "$fromdir/$_";
 
 AC>        Log(2, $_) for `$CP -pR --
 
 "$fromdir/$_" "$outdir/" 2>&1`
 
 AC>       }
 AC> }
 
 Да интересно... попробую его проверить на
 пригодность... И самое интересное, что совершенно
 отличается как от книжек так и от моего скрипта... :)
 
 AC> Hу и до кучи - я бы имя сервера, и возможно,
 
 обеих директорий передавал
 
 AC> бы в copy_dir параметрами. Меньше глобальных
 
 переменных - целее жопа...
 
 это в каком смысле??? Дело в том что это кусок
 кода из общего скрита с разными sub...
 
 AC> Да.  Ты бы все-таки, если уж утверждаешь, что
 
 у тебя скрипт заработал,
 
 AC> копировал бы заработавший кусок.  А то поди
 
 догадайся по твоим
 
 AC> опечаткам, что именно ты там имел в виду...
 
 Сорри  исправимся...
 А %excl обязательно my объявлять??? А почему $_=>1
 ? А как сделать, чтобы при сравнении не
 различались маленькие и большие буквы. Это понятно
 , что [a-zA-Z] или /i, но куда это впендюрить???
 
 AC>  S> -----------------
 AC>  S> #!/usr/bin/perl -w
 AC>  S> $ETC = "/usr/local/etc/dir"
 AC>  S> $SERVER=split(/,/, $ARGV[0]);
 AC>  S> $SERVER =~ tr/a-z/A-Z/;
 AC>  S> $fromdir="/tmp/fromdir";
 AC>  S> $outdir="/tmp/outdir";
 AC>  S> $CP="bin/cp";
 
 AC>  S> sub COPY_DIR
 AC>  S> {
 AC>  S> my (@strs,$str,@dirs,$dir,@dirsnew);
 
 AC>  S> if ( -e $ETC/$SERVER\.excl)
 AC>  S> {
 AC>  S> open (EXC, "$ETC/$SERVER\.excl);
 AC>  S> }
 AC>  S> else
 AC>  S> {
 AC>  S> open (EXC, "$ETC/default\.excl");
 AC>  S> }
 AC>  S> @exc = <EXC>;
 AC>  S> chomp (@exc);
 AC>  S> close EXC;
 AC>  S> opendir (D, $fromdir) or warn "Cannot open
 AC>  S> $fromdir: !" and next;
 AC>  S> @dirs=grep {!(/^\./) && "$fromdir/$_"}
 
 readdir D;
 
 AC>  S> rewinddir D;
 AC>  S> closedir D;
 AC>  S> @dirhash{@exc}=();
 AC>  S> foreach $dir (@dirs) {
 AC>  S>    push (@dirsnew, $dir) unless exists
 
 $dirhash{$dir};
 
 AC>  S> }
 AC>  S> foreach $dir (@dirsnew) {
 AC>  S> @strs=`($CP -pR -- "$fromdir/$dir"
 
 "$outdir/") 2>&1`;
 
 AC>  S> foreach $str (@strs)
 AC>  S> {
 AC>  S> &Log(2,"$str");
 AC>  S> }
 AC>  S> }
 AC>  S> }
 
 --------------
 С уважением Сергей
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5.3
  * Origin: Talk.ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Про копирования каталогов...   Sergey   07 Mar 2007 09:16:01 
 Re: Про копирования каталогов...   Artem Chuprina   07 Mar 2007 17:31:54 
 Re: Про копирования каталогов...   ‘ҐаЈҐ©   09 Mar 2007 09:32:31 
 Re: Про копирования каталогов...   ‘ҐаЈҐ©   09 Mar 2007 11:53:16 
 Re: Про копирования каталогов...   Artem Chuprina   11 Mar 2007 02:31:15 
 Re: Про копирования каталогов...   Sergey   13 Mar 2007 16:13:09 
 Re: Про копирования каталогов...   Serge Chervjakov   13 Mar 2007 21:16:16 
 Re: Про копирования каталогов...   Sergey   14 Mar 2007 15:41:55 
 Re: Про копирования каталогов...   Artem Chuprina   14 Mar 2007 18:03:48 
 Re: Про копирования каталогов...   Serge Chervjakov   14 Mar 2007 19:11:24 
 Re: Про копирования каталогов...   Artem Chuprina   14 Mar 2007 21:28:18 
 Про копирования каталогов...   Alexey Zhidkov   24 Mar 2007 21:07:12 
 Moderatorial [+] (was: Про копирования каталогов...)   Moderator of RU.PERL   24 Mar 2007 17:01:51 
 Re: Про копирования каталогов...   ‘ҐаЈҐ©   15 Mar 2007 11:07:14 
 Re: Про копирования каталогов...   Artem Chuprina   15 Mar 2007 13:23:38 
 Re: Про копирования каталогов...   Sergey   19 Mar 2007 12:02:58 
 Re: Про копирования каталогов...   Artem Chuprina   19 Mar 2007 14:06:31 
 Про копирования каталогов...   Alexey Zhidkov   24 Mar 2007 17:42:29 
Архивное /ru.perl/6488bd9293e4.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional