Автор Тема: Работа с числом в PERL  (Прочитано 3851 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YYYn

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Работа с числом в PERL
« : 19 Августа 2002, 13:13:46 »
$num = "000011";

     Делаю $num++; получается 12, а надо 000012 мля...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Работа с числом в PERL
« Ответ #1 : 19 Августа 2002, 13:48:30 »
Везет! А у меня 000012. И что делать? ;)
А если серьезно, то нонсенс. Приведи полный кусок скрипта.

ЗЫ. Давай без всяких "мля" обойдемся.
The documentations is your friend

Оффлайн YYYn

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Работа с числом в PERL
« Ответ #2 : 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

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Работа с числом в PERL
« Ответ #3 : 19 Августа 2002, 17:29:13 »
В крайнем случае пользуйся sprintf
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Работа с числом в PERL
« Ответ #4 : 19 Августа 2002, 18:35:48 »
Цитировать
000012
- не верю!
У меня в практике тоже такое было, а делал приблизительно следующее:

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

И все.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Работа с числом в PERL
« Ответ #5 : 19 Августа 2002, 19:31:46 »
А так работает? Не проверял, но должно. Вечером внимательнее посмотрю.
open(NUMBER"num.txt");
chomp($num = <NUMBER>); # Читает 000011 
close(NUMBER);

print 
$num# Выдает 000011 

$test=$num;

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

} else {
$test++;
}
print 
"<p>$test"# Выдает 000012

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


Цитировать
- не верю!
Кому?
The documentations is your friend

Оффлайн YYYn

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Работа с числом в PERL
« Ответ #6 : 19 Августа 2002, 21:01:08 »
Цитировать
- не верю!
У меня в практике тоже такое было, а делал приблизительно следующее:

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


Спасибо, Serchey!

Всё ОК! Тема закрыта.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Работа с числом в PERL
« Ответ #7 : 19 Августа 2002, 21:25:58 »
Цитировать
while(length($num) < 6){$num = "0".$num;}
А цикл то здесь зачем?
$num=("0"x(6-length($num))).$num;
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Serchey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 216
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.rivne.ukrtelecom.ua
Работа с числом в PERL
« Ответ #8 : 20 Августа 2002, 10:52:37 »
Цитировать
А цикл то здесь зачем?
.
YA, что проще, то что ты написал, или я?(я имею ввиду для машини)

NeoNox, это тебе я не поверил. Да, последний скрипт также нерабочий, логики в нем не видно.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Работа с числом в PERL
« Ответ #9 : 20 Августа 2002, 11:02:12 »
Serchey, мы же не на кофейной гуще гадаем, правильно?
Возьми и проверь перед тем как говорить.


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

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


А в последнем, это тебе логики не видно :).
Но он также рабочий.
The documentations is your friend

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Работа с числом в PERL
« Ответ #10 : 21 Августа 2002, 00:40:19 »
Serchey
Цитировать
что проще, то что ты написал, или я?

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28