14 / 18 / 5
Регистрация: 13.04.2011
Сообщений: 148
1

Ошибка скрипта "Unquoted string "myiplist" may clash with future reserved word"

21.04.2014, 11:57. Показов 1545. Ответов 4
Метки нет (Все метки)

Пишу скрипт, выдает следующие ошибки:
Bash
1
2
3
4
5
Unquoted string "myiplist" may clash with future reserved word at /tmp/addipblock.pl line 10.
Unquoted string "myblacklist" may clash with future reserved word at /tmp/addipblock.pl line 15.
Unquoted string "myblacklist" may clash with future reserved word at /tmp/addipblock.pl line 23.
Unquoted string "myiplist" may clash with future reserved word at /tmp/addipblock.pl line 31.
Died at /tmp/addipblock.pl line 26.
Код скрипта:
Perl
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
29
30
#!/usr/bin/perl -w
 
use LWP::Simple;
 
system('ipset list blacklist > /tmp/blacklist.txt');
 
getstore("http://mysite.ru/ipforblock/ip.txt", "/tmp/iplist.txt");
 
open(myiplist, '/tmp/iplist.txt') || die;
 
while ($line = <myiplist>)
    {
        $flag = 'true';
        open(myblacklist, '/tmp/blacklist.txt') || die;
        while ($line2 = <myblacklist>)
            {
                if ($line eq $line2) 
                {
                    $flag = 'false';
                }
            }
        close ( myblacklist );
        if ($flag eq 'true')
        {
            open(myLogFile, '/tmp/out.txt') || die;
            print myLogFile $line;
            close ( myLogFile );
        }
    }
close ( myiplist );
Подскажите в чем проблема.

PS. На perl писать не умею, приходиться по работе, так что просьба сильно не пинать. (конструктивная критика приветствуется)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2014, 11:57
Ответы с готовыми решениями:

Решение заданий типа "Array","Matrix","String","File","Text"""
большая просьба помочь решить где-то около 35-40 (из 100) задач (мне не понятных) типа массив и...

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и...

Вывести нечётные числа. Ошибка: оператор "%" невозможно применить к операнду типа "string" и "int"
Я новичок в программировании, поэтому не судите строго если тут всё говно. Нужно сделать, чтобы код...

Ошибка 0019 Оператор "+" невозможно применить к операнду типа "string" и "группа методов"
public string PrintEquiliteralTriangle() { AngleEquiliteralTriangel(); ...

4
46 / 21 / 3
Регистрация: 21.06.2013
Сообщений: 89
21.04.2014, 12:30 2
Имя, для которого не находится иной грамматической интерпретации, обрабатывается так, как если бы являлось строкой, заключенной в кавычки. Такие имена называют голыми словами (barewords). Так же как дескрипторы файлов и метки, голые слова2, состоящие исключительно из букв нижнего регистра, могут вступать в конфликт со словами, которые будут зарезервированы в будущем. Если включен вывод предупредительных сообщений, Perl выводит предупреждения по поводу голых слов.
Уолл Л., Кристиансен Т., Орвант Д. Программирование на Perl. – Пер. с англ. – СПб: СимволПлюс, 2002. – 1152 с., ил., с.100.
0
4195 / 1569 / 269
Регистрация: 10.12.2013
Сообщений: 5,430
21.04.2014, 15:37 3
Лучший ответ Сообщение было отмечено natrox как решение

Решение

строку 25 заменить на

Perl
1
open(myLogFile, '>', '/tmp/out.txt') || die;
и всё будет хорошо

Добавлено через 2 часа 6 минут
если конструкт. критика приветствуется, то без явных промежут. файлов
и с внешним curl вместо внутреннего lwp:

Perl
1
2
3
4
5
open( MY_BLACK, "-|", "ipset list blacklist" ) or die "Can't start ipset subprocess: ", $!;
chomp $my_black{$_} while <MY_BLACK>;
close(MY_BLACK);
open ( INET_BLACK, "-|", "curl http://mysite.ru/ipforblock/ip.txt")  or die "Can't start curl subprocess: ", $!;
print grep { exists $my_black{$_} } <INET_BLACK>;
1
46 / 21 / 3
Регистрация: 21.06.2013
Сообщений: 89
21.04.2014, 16:07 4
Вместо curl можно использовать HTTP::Tiny, он есть в стандартном дистрибутиве.
1
14 / 18 / 5
Регистрация: 13.04.2011
Сообщений: 148
22.04.2014, 05:08  [ТС] 5
Цитата Сообщение от hobo-mts Посмотреть сообщение
Уолл Л., Кристиансен Т., Орвант Д. Программирование на Perl. – Пер. с англ. – СПб: СимволПлюс, 2002. – 1152 с., ил., с.100.
Я не настолько серьезно интересуюсь перлом чтобы книги читать, мне просто необходимо написать 1 скрипт, не более того.

Цитата Сообщение от hobo-mts Посмотреть сообщение
Вместо curl можно использовать HTTP::Tiny, он есть в стандартном дистрибутиве.
Я делал по примеру, но все-равно спасибо, учту.

volodin661, спасибо большое

Добавлено через 11 часов 31 минуту
Если кому интересно, вот что получилось в итоге:

Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
 
use LWP::Simple;
 
getstore("http://mysite.ru/ipforblock/ip.txt", "/tmp/iplist.txt");
 
open( MY_BLACK, "-|", "ipset list blacklist" ) or die "Can't start ipset subprocess: ", $!;
chomp $my_black{$_} while <MY_BLACK>;
close(MY_BLACK);
 
open ( INET_BLACK, "/tmp/iplist.txt")  or die "Can't start curl subprocess: ", $!;
open(OUT_FILE, '>', '/tmp/out.txt') || die;
print OUT_FILE grep{!exists $my_black{$_}} <INET_BLACK>;
close ( OUT_FILE );
 
open(iplist, '/tmp/out.txt') || die;
while ($line = <iplist>)
    {
        $line = 'ipset add blacklist '.$line;
        system($line);
    }
close ( iplist );
PS. Curl у меня почему-то работать отказался, не стал заморачиваться и сделал так. =)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2014, 05:08

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

Ошибка "Неявное преобразование типа "System.DateTime" в "string" невозможно"
Неявное преобразование типа &quot;System.DateTime&quot; в &quot;string&quot; невозможно вот в этой строчке...

Ошибка: Оператор "<" невозможно применить к операндам типа "string" и "int"
Дело в чём. Хочу сделать так, чтобы Количество букв из текстбокса не было меньше 6 знаков. if...

Обработка "null" в MS Access "Приведение типа "|DBNull" к типу "String" является недопустимым"
Здравствуйте. Работаю с базой MS Access Вывожу в DataGridView таблицу Проблема следующая, если у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru