Forum Webscript.Ru

Программирование => Perl => Тема начата: YYYn от 19 Августа 2002, 13:13:46

Название: Работа с числом в PERL
Отправлено: YYYn от 19 Августа 2002, 13:13:46
$num = "000011";

     Делаю $num++; получается 12, а надо 000012 мля...
Название: Работа с числом в PERL
Отправлено: NeoNox от 19 Августа 2002, 13:48:30
Везет! А у меня 000012. И что делать? ;)
А если серьезно, то нонсенс. Приведи полный кусок скрипта.

ЗЫ. Давай без всяких "мля" обойдемся.
Название: Работа с числом в PERL
Отправлено: YYYn от 19 Августа 2002, 15:15:50
Цитировать
Везет! А у меня 000012. И что делать?
А если серьезно, то нонсенс. Приведи полный кусок скрипта.


УГУ, везет как утопленнику...

Кажется понял откуда ноги растут, но не знаю это как решить.
Похоже дело в $num = ; я прав?

   open(NUMBER,"num.txt");
   $num = ;
   close(NUMBER);
   if ($num == 9999999)  {
      $num = "1";
   }
   else {
      $num++;
   }
   open(NUM,">num.txt") || die $!;
   print NUM "$num";
   close(NUM);

В num.txt - 000011
Название: Работа с числом в PERL
Отправлено: GotZfild от 19 Августа 2002, 17:29:13
В крайнем случае пользуйся sprintf
Название: Работа с числом в PERL
Отправлено: Serchey от 19 Августа 2002, 18:35:48
Цитировать
000012
- не верю!
У меня в практике тоже такое было, а делал приблизительно следующее:

$num = "000011";
$num++;
while(length($num) < 6){$num = "0".$num;}

И все.
Название: Работа с числом в PERL
Отправлено: NeoNox от 19 Августа 2002, 19:31:46
А так работает? Не проверял, но должно. Вечером внимательнее посмотрю.
open(NUMBER, "num.txt");
chomp($num = ); # Читает 000011
close(NUMBER);

print $num; # Выдает 000011

$test=$num;

if ($num == 9999999) {
$test = 1;

} else {
$test++;
}
print "

$test"; # Выдает 000012

open(NUM,">num.txt") ;
print NUM "$test"; # Пишет 000012
close(NUM);

Цитировать
- не верю!
Кому?
Название: Работа с числом в PERL
Отправлено: YYYn от 19 Августа 2002, 21:01:08
Цитировать
- не верю!
У меня в практике тоже такое было, а делал приблизительно следующее:

$num = "000011";
$num++;
while(length($num) < 6){$num = "0".$num;}


Спасибо, Serchey!

Всё ОК! Тема закрыта.
Название: Работа с числом в PERL
Отправлено: YA от 19 Августа 2002, 21:25:58
Цитировать
while(length($num) < 6){$num = "0".$num;}
А цикл то здесь зачем?
$num=("0"x(6-length($num))).$num;
Название: Работа с числом в PERL
Отправлено: Serchey от 20 Августа 2002, 10:52:37
Цитировать
А цикл то здесь зачем?
.
YA, что проще, то что ты написал, или я?(я имею ввиду для машини)

NeoNox, это тебе я не поверил. Да, последний скрипт также нерабочий, логики в нем не видно.
Название: Работа с числом в PERL
Отправлено: NeoNox от 20 Августа 2002, 11:02:12
Serchey, мы же не на кофейной гуще гадаем, правильно?
Возьми и проверь перед тем как говорить.


#!/usr/bin/perl
print "Content-type: text/html\\n\\n";

$num = "000011";
$num++;
print "$num";


А в последнем, это тебе логики не видно :).
Но он также рабочий.
Название: Работа с числом в PERL
Отправлено: YA от 21 Августа 2002, 00:40:19
Serchey
Цитировать
что проще, то что ты написал, или я?

Надеюсь, то, что я написал :):) - операций-то меньше ;)
Будет время - замерю скорость (для разного количества нулей).