Различные способы исправить ошибку Perl Split Loop Bug Error
December 24, 2021Рекомендуется: Fortect
Надеюсь, это руководство пользователя упростит вам задачу, когда вы столкнетесь с новой общей ошибкой цикла Perl.
PrivI выполняет братьев и сестер …Когда я запускаю Perl 5.8 в Linux, я получаю ошибку прерывания циклавозможно продолжение следует …. (Perl 5.8 создан для i386-linux-thread multi)
долларовая строка = $ _;@outLine соответствует разделению (/ (<[^>] *>) или, $ line);
@outLine равно split (/ (<[^>] *>) /, RR _);
И ни в коем случае не переводит, как я получаю эту ошибку в том случае, если она горитс Solaris. (Perl 5.8 создан только для sun4-solaris)К сожалению, я был бессилен исправить это, просто купив его.$ line с $ _, когда “настоящий” код, я хотел бы это оценить. Идеи?Спасибо!
Perl имеет 6 общих ключевых слов управления циклом. То, которое часто используется, является точным следующим за ним и продолжает его, и просто есть третье, которое, вовлекает., Редко используется и относится к Redo. На большинстве других языков несколько релевантных ключевых слов – это обычно «вперед» и «отпуск». Следующий из Perl – это то же самое, что start on на других языках, и торчать, когда Perl точно такой же, как pause на других языках.
Вы можете написать perldoc perldiag
, чтобы увидеть, что означает набор, связанный со встроенными ошибками и предупреждениями.
Разделить ловушку
Для однострочников Perl достаточная причина для неявных циклов (с параметрами -n и / или, возможно, -p для получения ваших текущих строк), используйте последнюю или действительно мою последнюю СТРОКУ, чтобы перейти к некоторому циклу, который повторяется по фактическим файлам данных . Например, эти удобные примеры показывают почти все первые 2 строки после записи: -e: указывает Perl искать стиль в этой строке, а не в нашем файле.
(P) Раскол продолжался вечно. (Конечно, каждое деление не должны проходить больше экземпляров по сравнению с тем, что есть символы в этой записи, все и что получилось.) "Сплит" переходим в perlfunc.
В Perl я бы сказал, что функция распознается как split. Разделив REGEX, STRING делит STRING для каждой части REGEX. разделить REGEX, STRING, LIMIT, где LIMIT – любое положительное число. Это определенно остановит STRING почти для каждого партнера, созданного REGEX, но покажет тенденцию останавливаться, как только будут найдены совпадения LIMIT-1.
Строка, которую вы будете решать, настолько длинна, в которой Perl предполагал, что итерация безгранична. Если Perl разделил коллекцию на длину, превышающую длину самой строки + 10, программа вернет указанную выше ошибку, при условии, что это бесконечное изображение. К сожалению, это число хранится как одно 24-битное целое число, которое может влиять и передавать только до 2 долларов. Ваша цепочка на 16 миллиардов больше четвертого члена, поэтому точный результат будет неверным.
Эта проблема была недавно исправлена в версии 5.20, как и многие другие проблемы со строками размером более 2 ГБ. Если это так, ваше общее семейство Perl будет обновлено, фактический код определенно будет «работать».
Однако ваш код ужасно неэффективен, по правде говоря, он также уничтожает большую часть конкретной машинной памяти, ужасно замедляя ее при переключении на компакт-диск. По крайней мере, мы должны действительно проглотить небольшой файл и изучить его 16 ГБ построчно.
мой @small_data = <$ small_fh>;съесть @small_data;в то время как (очень чистый $ big равно <$ big_fh>) пресечь большие деньги; на моем маленьком $ (@small_data) ...
Но даже это было бы ужасно бесполезно, если ваш маленький файл содержит 500 строк, тогда цикл будет стоить 16 миллиардов долларов!
Поскольку похоже, что вы собираетесь проверить, находятся ли основные записи записей в небольшом сохранении, вам лучше преобразовать записи Name файлов небольшого размера в эту хеш-таблицу.
мои% fields;while (моя серия $ подразумевает <$ small_fh>) chomp $ line; отлично best @sp = split и: /, $ line; поля долларов $ sp [0] равняются $ sp [1];
Теперь пользователи, безусловно, могут не только выполнять поиск по хешу, но и просматривать большие документы.
хотя (строка war $ соответствует <$ big_fh>) линия дохода chomp; было @f означает разделение (' t', архипелаг $); if (определены поля rrr f [0]) ...
[Дата возврата] [Следующая дата] A [Вернуться в тему] [Следующая тема] А[Предметный указатель][Индекс даты][Указатель авторов Telford]
- от
- Кому: psyche-list redhat net
- Тема: Re: perl: Отправить изображение …
- Дата: среда, 12 марта 2003 г., 11:43:24, +1100
<для >>> Автор: Гейвуд Греттл
- Отслеживание:
- Тема:- perl: разбить цикл на … до свидания
- от Olonoh
- Re: perl: вход в разделенный цикл …
- Автор: Кэмерон Симпсон.
- Тема:- perl: разбить цикл на … до свидания
[Дата возврата] [Следующая дата] [Вернуться в тему] [Следующая тема] А[Предметный указатель][Индекс даты][Каталог авторов]
Рекомендуется: Fortect
Вы устали от медленной работы компьютера? Он пронизан вирусами и вредоносными программами? Не бойся, друг мой, Fortect здесь, чтобы спасти положение! Этот мощный инструмент предназначен для диагностики и устранения всевозможных проблем с Windows, а также для повышения производительности, оптимизации памяти и поддержания вашего ПК в рабочем состоянии. Так что не ждите больше - скачайте Fortect сегодня!
а>
Split Loop Error Perl
Split Loop Fehler Perl
분할 루프 오류 펄
Erro De Loop De Divisao Perl
Split Loop Error Perl
Split Loop Fout Perl
Blad Podzielonej Petli Perl
Errore Di Ciclo Diviso Perl
Error De Bucle Dividido Perl
Erreur De Boucle Fractionnee Perl
г.