Автор Тема: Чудеса  (Прочитано 2730 раз)

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

Оффлайн Glader

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glader.ru
Чудеса
« : 25 Марта 2003, 09:45:23 »
Снимите с ручника, плз. Что-то я совсем ничего не понимаю...

1 вариант
==============================
use strict

my $b = \'BBB\';
my $a = \'AAA\';

xyz($b, \'111\', $a);
xyz($b, $b, $a);
xyz($b, $a, $a);
xyz($b, $a, \'222\');

sub xyz{
   my ($_a, $_b, $_c) = @_;
   print "a = $_a, b = $_b, c = $_c.\\n";
}
==============================

Выдает
==============================
a = , b = 111, c = AAA.
a = , b = , c = AAA.
a = , b = AAA, c = AAA.
a = , b = AAA, c = 222.
==============================

2 вариант
==============================
use strict

my $a = \'AAA\'; # объявления поменяны местами
my $b = \'BBB\';

xyz($b, \'111\', $a);
xyz($b, $b, $a);
xyz($b, $a, $a);
xyz($b, $a, \'222\');

#то же самое
==============================

Выдает
==============================
a = BBB, b = 111, c = .
a = BBB, b = BBB, c = .
a = BBB, b = , c = .
a = BBB, b = , c = 222.
==============================


ПОЧЕМУ??? Куда пропадает значение первой переменной?

W2K, IndigoPerl 5.006

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Чудеса
« Ответ #1 : 25 Марта 2003, 10:26:08 »
Цитировать
Снимите с ручника, плз. Что-то я совсем ничего не понимаю...


use strict;
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн Glader

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glader.ru
Чудеса
« Ответ #2 : 25 Марта 2003, 10:35:29 »
АААА!!!! Спасибо огромное! надо же, проглядел. И ведь не ругался же, собака :)

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Чудеса
« Ответ #3 : 25 Марта 2003, 10:52:53 »
Glader
А ты под консолью запускал или как-то по-другому?
Мне ActivePerl под консолью про такое всегда говорил, с полным указанием места ошибки.
•••Jah\'d never let us down!•••

Оффлайн Glader

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glader.ru
Чудеса
« Ответ #4 : 25 Марта 2003, 11:57:23 »
Да, из far-а, причем даже -w ничего про это не говорит. Может, просто перл старый...

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Чудеса
« Ответ #5 : 25 Марта 2003, 12:12:54 »
В общем он должен говорить. Попробуй от ActiveState.
•••Jah\'d never let us down!•••

 

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