P4IGNORE - это настройка клиента, а не настройка сервера. Возможно, ваш P4V-клиент не настроен на чтение файла игнорирования.
Если вы хотите, чтобы на стороне сервера принудительно устанавливалось, какие файлы поступают на сервер, используйте либо таблицу защиты (которая может применяться ко всем пользователям), либо представление клиента (которое будет применяться каждый раз, когда вы используете это рабочее пространство, независимо от того, вы используете p4
или P4V или любое другое клиентское приложение).
Вы звоните each
в скалярном контексте, таким образом, это не работает из-за возвращаемого значения списка.
Точно так же, как
while ($line = <FILE>)
является специальным в корпусе для добавления неявного defined
, так
while ($key = each %hash)
В 5.8.8, который происходит в op.c, строки 3760-3766:
case OP_SASSIGN:
if (k1->op_type == OP_READDIR
|| k1->op_type == OP_GLOB
|| (k1->op_type == OP_NULL && k1->op_targ == OP_GLOB)
|| k1->op_type == OP_EACH)
expr = newUNOP(OP_DEFINED, 0, expr);
break;
Я не уверен, относится ли это ко всем версиям Perl 5.
См. также: Когда делает, в то время как () тестируют на определенный по сравнению с истиной на PerlMonks. Я не могу найти, где это упоминается в документах Perl ( <FILE>
случай упоминается, но я не вижу each
случай).
cjm является правильным. Я просто хочу добавить что когда наталкивающийся на странные вещи как это его часто полезный для выполнения кода через B:: Deparse, чтобы видеть, как Perl понял Ваш код. Мне нравится использовать переключатель-p для проявления ошибок приоритета, также.
$ perl -MO=Deparse,p your_example.plx
(%h) = (0, 'zero', 1, 'one', 2, 'two');
while (defined($k = each %h)) {
$v = delete $h{$k};
print "deleted $v; remaining: @h{0..2}\n";
}
your_example.plx syntax OK
Спасибо, cjm. Это было ясно некоторое неявное добавление a defined
продолжался как этот для шарика, но не, где он был зарегистрирован. Теперь, по крайней мере, я знаю ограниченные случаи, в которых применяется та специальная обработка.
Но информация должна быть в perlfunc документации, не только исходном коде Perl!