Автор Тема: Сравнение скаляров - не сравниваются  (Прочитано 3386 раз)

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

Оффлайн webser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.webser.ru
Суть:: есть цикл, где читается инфа из файла и сравниваются переменная с полученной ранее.

# поиск наименования компании
for ($i=0;$i<@list;$i++)
{
my ($tmp_id, $tmp_firm, $tmp_resume, $tmp_logo, $tmp_link) = split(/$delimiter1/,$list[$i]);

print qq!
id1 :::: $id1 | tmp_id :::: $tmp_id

!;

if ($tmp_id eq $id1) {
my $firm = $tmp_firm;
}
}

Видим ::

.................
id1 :::: 0005 | tmp_id :::: 0004
id1 :::: 0005 | tmp_id :::: 0005
id1 :::: 0005 | tmp_id :::: 0006
id1 :::: 0005 | tmp_id :::: 0007
..................

Проблема :: не происходит сравнение НИКАК - при отладочной печати видно, что переменные (0005) есть и одинаковые, а if с eq - НЕ ХОЧЕТ и my $firm - ПУСТАЯ!!! В ЧЕМ ДЕЛО?

Заранее спасибо за БЫСТРЫЙ и СКОРЫЙ ответ.

P.S. Может ModPerl глючит?

P.S.S Вот код файла, который парсим

0001#2К-аудит###
0002#3 канал###
0003#BBM###
0004#Brother###
0005#Cool Air###
0006#De\'Longhi###
0007#European Food Group###
0008#Home Net Telecom (HNT)###
0009#Imac###
0010#Incity###
« Последнее редактирование: 16 Марта 2008, 03:33:09 от webser »

Оффлайн webser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.webser.ru
Сравнение скаляров - не сравниваются
« Ответ #1 : 16 Марта 2008, 13:49:10 »
Продолжение мытарств :::
Поставил подробную ОТЛАДОЧНУЮ печать (данные файла - те же)

my $firm ="";
for ($i=0;$i<@list;$i++)
{
my ($tmp_id, $tmp_firm, $tmp_resume, $tmp_logo, $tmp_link) = split(/$delimiter1/,$list[$i]);

print qq!
id1 :::: $id1 | tmp_id :::: $tmp_id | === | firm ::: $firm >>>>> tmp_firm ::: $tmp_firm

!;

if ($tmp_id eq $id1) {
my $firm = $tmp_firm;
print qq!
OK ::::::: id1 :::: $id1 | tmp_id :::: $tmp_id | === | firm ::: $firm >>>>> tmp_firm ::: $tmp_firm

!;
}
}
print "
firm2 = ".$firm."\\n\\n";


Результаты работы скрипта ::::

id1 :::: 0005 | tmp_id :::: 0001 | === | firm ::: >>>>> tmp_firm ::: 2К-аудит
id1 :::: 0005 | tmp_id :::: 0002 | === | firm ::: >>>>> tmp_firm ::: 3 канал
id1 :::: 0005 | tmp_id :::: 0003 | === | firm ::: >>>>> tmp_firm ::: BBM
id1 :::: 0005 | tmp_id :::: 0004 | === | firm ::: >>>>> tmp_firm ::: Brother
id1 :::: 0005 | tmp_id :::: 0005 | === | firm ::: >>>>> tmp_firm ::: Cool Air
OK ::::::: id1 :::: 0005 | tmp_id :::: 0005 | === | firm ::: Cool Air >>>>> tmp_firm ::: Cool Air
id1 :::: 0005 | tmp_id :::: 0006 | === | firm ::: >>>>> tmp_firm ::: De\'Longhi
id1 :::: 0005 | tmp_id :::: 0007 | === | firm ::: >>>>> tmp_firm ::: European Food Group
id1 :::: 0005 | tmp_id :::: 0008 | === | firm ::: >>>>> tmp_firm ::: Home Net Telecom (HNT)
id1 :::: 0005 | tmp_id :::: 0009 | === | firm ::: >>>>> tmp_firm ::: Imac
id1 :::: 0005 | tmp_id :::: 0010 | === | firm ::: >>>>> tmp_firm ::: Incity

firm2 =

ПОЧЕМУ ?????????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
Сравнение скаляров - не сравниваются
« Ответ #2 : 16 Марта 2008, 16:16:58 »
#!/usr/bin/perl -w

open (FILE, "test.htm");
@file=;
close (FILE);

$id1=\'0005\';

foreach (@file) {
  ($tmp_id, $tmp_firm) = split(/\\#/);
  print "id1 :::: $id1 | tmp_id :::: $tmp_id\\n";
  if ($tmp_id eq $id1) { $firm = $tmp_firm; }
}
print "FIRM = $firm !!!";


id1 :::: 0005 | tmp_id :::: 0001
id1 :::: 0005 | tmp_id :::: 0002
id1 :::: 0005 | tmp_id :::: 0003
id1 :::: 0005 | tmp_id :::: 0004
id1 :::: 0005 | tmp_id :::: 0005
id1 :::: 0005 | tmp_id :::: 0006
id1 :::: 0005 | tmp_id :::: 0007
id1 :::: 0005 | tmp_id :::: 0008
id1 :::: 0005 | tmp_id :::: 0009
id1 :::: 0005 | tmp_id :::: 0010
FIRM = Cool Air !!!
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн webser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.webser.ru
Сравнение скаляров - не сравниваются
« Ответ #3 : 16 Марта 2008, 16:26:54 »
ФАНТАСТИКА - РАБОТАЕТ !!!

И почему у меня не работало? Что-бы избежать ошибок в будущем - вроде ТО ЖЕ самое делал!

 

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