Ошибка в perl

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mdxclr
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-07 3:48:27

Ошибка в perl

Непрочитанное сообщение mdxclr » 2014-02-07 3:53:35

Добрый день.
Суть проблемы в том, что не работает код, написаный для Линукса. Выдает ошибку на cp. Пробовал переписать вместо cp - copy - ничего не делает, но ошибки не выдает. До этого код весь работает, проверял. Стрянет на моменте с copy.

Код: Выделить всё

        ($image,$suffix) = split (/\./, $picture);

	print "Working with $picture\n";
	foreach $key (sort keys %sizes) {
	
		$target = join "", $image, "_", $key, ".", $suffix;
		print "target is $target\n";

		# only copy original for resizing if it doesn't already exist
		if ( ! -e "$resizeddir/$target" ) {
			
			# copy original into resized directory for justified_gallery_builder
			# make a copy of original. if scale > original dimensions, original image will be used rather than upscaling
			mkdir $resizeddir,0777;
			system ("cp $picture $resizeddir/$picture")	or die ".loh";	
			system ("cp $picture $resizeddir/$target")	or die ".loh";	
			
		

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alvares
прапорщик
Сообщения: 479
Зарегистрирован: 2008-07-10 12:48:08
Откуда: Воронеж
Контактная информация:

Re: Ошибка в perl

Непрочитанное сообщение Alvares » 2014-02-07 7:54:10

Код: Выделить всё

$resizeddir/$target
А если так

Код: Выделить всё

$resizeddir\$target
Кроме того

Код: Выделить всё

mkdir $resizeddir,0777

для Win не команда
должно быть

Код: Выделить всё

md $resizeddir
ну и cp->copy
Бог создал людей сильными и слабыми. Сэмюэл Кольт сделал их равными...

mdxclr
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-07 3:48:27

Re: Ошибка в perl

Непрочитанное сообщение mdxclr » 2014-02-07 14:45:56

Alvares писал(а):

Код: Выделить всё

$resizeddir/$target
А если так
Заменил на md - Can't locate object method "md" via package "resized" (perhaps you forgot to loa
d "resized"?
Так же убрал права - тоже самое. Потом убрал воопше создание папки (тк создал вручную) - ничего.
Поменять на "\" тоже ничего не дало. ошибка виглядит так:

Код: Выделить всё

D:\WinFiles\xampp\htdocs>justified_resize.pl
Running in: pwd
Working with 1.jpg
target is 1_b.jpg
The system cannot find the file specified.
The system cannot find the file specified.
identify.exe: unable to open image `resized/1_b.jpg': No such file or directory
@ error/blob.c/OpenBlob/2642.
target is 1_c.jpg
The system cannot find the file specified.
The system cannot find the file specified.
identify.exe: unable to open image `resized/1_c.jpg': No such file or directory
@ error/blob.c/OpenBlob/2642.
target is 1_m.jpg
The system cannot find the file specified.
The system cannot find the file specified.
pwd в моем случаи папка( $pwd = 'pwd';), файлы в ней видны.
identify сам по себе работает, проверял.

mdxclr
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-07 3:48:27

Re: Ошибка в perl

Непрочитанное сообщение mdxclr » 2014-02-07 15:07:20

UPDATE:
для $pwd присвоил $pwd = `echo %cd%` и везде стер $resized, теперь создает копии файла, но не ресайзит их.
Проблема начинается с

Код: Выделить всё

my $fullratio = `identify -format \"\%wx\%h:\"$target`;
прописал отдельно в консоль - команда не работает.
Переправили на

Код: Выделить всё

identify -format '%[fx:w]x%[fx:h]' 254287_b.jpg
выдает '1920x1200' - отлично
Но незнаю как настроить дальше, тк после

Код: Выделить всё

(my $ratio, $null) = split ( /:/, $fullratio);

			# parse dimensions of image
                	($width, $height) = split ( /x/, $ratio);
                	$height = int ($height);
                	$width  = int ($width);
                	print "height: $height, width: $width\n";
Получаем по нулях.

mdxclr
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-07 3:48:27

Re: Ошибка в perl

Непрочитанное сообщение mdxclr » 2014-02-07 15:47:57

Код: Выделить всё

         	$height = int (`identify -format %w $target`);
                	$width  = int (`identify -format %h $target`);
Вот так работает :) Но хочется чтобы одним запросом брало и w и h, как выше.

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ошибка в perl

Непрочитанное сообщение thefree » 2014-03-16 8:53:36

для вин надо все через \ и copy "path" "path", то есть путь к файлц должен быть в ""
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету