простой вопрос по перлу
$line[$strTMP]->[0]У тебя там undef записан.
То есть надо или исправлять баг раньше по коду, или сначала проверять через defined, а потом уже сравнивать.
помогло
![](/images/graemlins/laugh.gif)
defined $line[$strTMP]->[0] ne 'ATOM'По-моему, тут какая-то лажа. Независимо от приоритетов операций ни вариант
(defined $line[$strTMP]->[0]) ne 'ATOM',
ни
defined ($line[$strTMP]->[0] ne 'ATOM'
ни даже
defined($line[$strTMP])->[0] ne 'ATOM'
не имеет смысла.
Мне кажется, надо так:
ifdefined $strTMP) and (defined $line[$strTMP]->[0])
and ($line[$strTMP]->[0] ne 'ATOM'
{...}
if( !defined($line[$strTMP]->[0] {$line[$strTMP]->[0] ="";}
грубо говоря...
Еще люблю инициализировать все массивы пустыми (нулевыми) значениями в начале работы.
Оставить комментарий
zakysj50
как избавиться от строчек при выполнении программы:use of uninitialized value in string eq at line 91.
use of uninitialized value in string ne at line 91.
строчка следующая:
if ($line[$strTMP]->[0] ne 'ATOM') {
эта ошибка то появляется, то исчезает
т.е. ее сначала не было, потом ничего вроде бы не поменялось - она появилась
что она может значить?