Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Вроде бы просто, но не работает :(


Автор: patt 15.9.2005, 20:28
Смысл такой: прога читает вайл из директории, создаёт каталог имя у кот. первая буква файла, и вложеную, имя, кот вторая буква файла и в него распакоувает архив, если он zip (и так для всех файловsmile

#!/usr/bin/perl
@mas = `ls`;
print $mas[0];
print "\n";

foreach $str (@mas)
{
#$str = $mas[0];
$str1 = substr($str,0,1);
$str2 = substr($str,1,1);

`mkdir $str1`;
`mkdir $str1/$str2`;
if($str=~ m/\.zip/)
{
`unzip $str -d ./str1/str2`;
}
}

Ошибка в строке `unzip $str -d ./str1/str2`; пишет: "sh: line 2: -d: command not found"
Если набрать в командной строке, то всё работает.
Подскажите, в чём дело.

Автор: sharq 15.9.2005, 21:02
patt зачем ты используешь команды шела, ведь можно обойдись и средствами perl.
Ладно, вот рабочий код:
Код

#!/usr/bin/perl -w
#sharq

use strict;

my $zip = './1.zip';
my $dir = './1/2';

my @res = `unzip $zip -d $dir 2>&1`;

print "Results: ", join('::', @res), "\n"; 


smile

Автор: patt 22.9.2005, 16:48
smile Сасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)