|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 09 Nov 2002 19:54:18 To : "Igor Solovyoff" Subject : Re: copying directory -------------------------------------------------------------------------------- Здравствуй, Igor Solovyoff. >> IS> Hо под Вин32 вызвать system "xcopy ..." получается гораздо короче... IS> > IS> > Под юниксом вызывать cp -a или rsync - тоже. IS> >Оно ж не шелл, оно же perl. IS> Ты имеешь в виду, что вызов внешних программ может происходить без участия IS> шел? IS> Это то понятно. Hо они все-равно внешние... Я имею в виду, что в его обязанности как языка не входит совершение агрегатных операций в системе. Для этого существуют конкретные программы. Hе обязательно на нем написанные. IS> > А вот если ты начнешь писать мультиплатформенное приложение, код обработки IS> "кого IS> > позвать" может оказаться существенно длиннее. Если, конечно, умеешь IS> писать - IS> > вариант с File::Find+File::Copy, помимо двух строчек use, займет в IS> зависимости IS> > от лаконичности написания от одной до четырех строк. IS> > >> IS> Я еще нашел File::NCopy, но после беглого просмотра не нашел там IS> варианта >> IS> задать что-то типа >> IS> a:\srcdir\*.js скопировать в b:\dstdir\*.*. Можно только всю IS> директорю >> IS> целиком :-( IS> > IS> > А этот вариант - до пяти... IS> > IS> Я в перл (но не в программировании) делаю первые шаги только. IS> Поэтому до такой лаконичности еще далековато... Пока;-) use File::Find; use File::Copy; chdir($srcdir) or die "$!"; find(sub { mkdir("$dstdir/$File::Find::dir",0777) || die("$!") unless -d "$dstdir/$File::Find::dir" copy($_, "$dstdir/$File::Find::dir/$_") || die("$!") if /\.js$/; }, "."); -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454a4beb4bc.html, оценка из 5, голосов 10
|