From: Michael Dukelsky 2:5020/1042 09 Jun 2019 19:43 +0300
To: Brother Rabbit 2:460/5858
Subject: что я не так делаю?
Привет, Brother! 09 June 2019 16:11, Brother Rabbit послал(а) письмо к Michael Dukelsky: MD>> Не совсем понял, что ты хочешь. MD>> #!/usr/bin/perl MD>> my $words = "по закону"; MD>> my $text = "гипопотам закону не указ"; MD>> my @wrds = split(" ", $words); MD>> my $found = 0; MD>> foreach my $w ( @wrds ) MD>> { MD>> print "w = $w\n"; MD>> if($text =~ /$w/i) MD>> { MD>> $found = 1; MD>> last; MD>> } MD>> } MD>> print "found = $found\n"; MD>> Находит "по" в слове "гипопотам". Это то, что ты хотел? BR> Наоборот. Я хотел, что бы находилось только "по", но не "гипопотам". Тогда так: #!/usr/bin/perl my $words = "по закону"; my $text = "гипопотам закону не указ"; my @wrds = split(" ", $words); my $found = 0; foreach my $word ( @wrds ) { print "word = $word\n"; if($text =~ /^$word\s/i) { $found = 1; last; } if($text =~ /\s$word\s/i) { $found = 2; last; } if($text =~ /\s$word$/i) { $found = 3; last; } } print "found = $found\n"; Желаю успехов, Brother! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru
From: Mikhail Stakhanov 2:5020/932.1 18 Apr 2019 22:42 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: помогите!!!
Здравствуйте, Mikhail! Ответ на сообщение Mikhail Stakhanov (2:5020/932.1) к All, написанное 18 апр 19 в 21:36: MS> Вот это работает: MS> `grep -v '*' $SRIFI{ 'requestlist' } | sed -e 's/ MS> //' -e 's/\?/\./g' -e 's/^/\\//' -e 's/\$/\$/' | grep -if - $filelist MS> 2>/dev/null | sed 's/^/+/' > $SRIFI{ 'responselist' }`; MS> просто привожу строчку целиком, тут все sed не важны. MS> А вот это нет: MS> open RL, ">".$srif{'responselist'} or die "System error $! of MS> writing $srif{responselist}"; MS> for (my $i = 0; $i < scalar($j); $i++) { MS> chomp($files_found[$i]); MS> print RL "+$files_found[$i]\n"; MS> w_log("Found file: $files_found[$i]"); MS> } MS> close RL; MS> Поигрался с ковычками $srif{responselist}, $srif{'responselist'} и MS> "$srif...." не помогло... MS> system "echo $files_found[$i] > MS> $srif{'responselist'}"; Сделал так, тоже не помогло... MS> В ЧЕМ ПРОБЛЕМА? попробывал binmode STDOUT, ecnoding(CP855 ... Latin1 ); не помогло перевел весь скрипт в us-ascii iconv тоже не помогло.... Что еще ? Всего наилучшего, Mikhail
From: Brother Rabbit 2:460/5858 09 Apr 2019 10:02 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: UTF-8 CP866
Hi, Mikhail! 05 апр 19 07:37, Mikhail Stakhanov -> Alexey Vissarionov: MS>>> Слушайте а как вы кодите ? MS>>> вот я писал сегодня прогу в винде в фаре, потом перенес ее на MS>>> linux и там отстроил, так у меня usage и системные сообщения MS>>> UTF-8 А все для внутренних фидо файлов CP866 AV>> use Encode; MS> from_to у меня не работает.... не понимаю почему. encode пробовал? Have nice nights. Brother Rabbit.
From: Eugene Grosbein grosbein.net 07 Apr 2019 09:12 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: soft hash
06 апр. 2019, суббота, в 16:39 NOVT, Mikhail Stakhanov написал(а): MS> Помогите хешь отсортировать: MS> $VAR1 = { MS> 'ap190325.zip' => [ MS> '2' MS> ], MS> 'z2daily.080' => [ MS> '8' MS> ], MS> 'files.bbs' => [ MS> '1', MS> '2', MS> '3', MS> '4', MS> '5', MS> '6', MS> '7', MS> '8' MS> ], MS> 'z2daily.074' => [ MS> '8' MS> ], MS> 'ap190403.zip' => [ MS> '2' MS> ] MS> }; MS> Хешь вида {key}[0..n] (имя файла и номер каталога). Hужна сортировка по {key}. MS> Хотя можно выделять массив на начальную букву, его сортировать и запихивать в MS> файл. Hо всеравно в качестве развития как по {key} такой хеш сортируется ? Первым делом нужно понять, что понятие "сортировки" или даже порядка неприменимо к хешам. Их внутреннее хранение не определено. Сортированным может быть список скаляров, то есть ключей: my @sorted_keys = sort(keys(%hash)); Функция keys, применённая к хешу, возвращает новый список с копиями ключей этого хеша, а функция sort возвращает ещё одну копию списка, уже сортированную (после чего промежуточные копии удаляются сборщиком мусора как не имеющие ссылок на них). И вот потом уже можешь делать foreach (@sorted_keys) и внутри цикла переменная $_ будет пробегать значения ключей в порядке возрастания. Eugene -- Поэты - страшные люди. У них все святое.
From: Eugene Grosbein grosbein.net 04 Apr 2019 01:49 +0300
To: Mikhail Stakhanov 2:5020/932.1
Subject: регулярные выражения.
03 апр. 2019, среда, в 15:38 NOVT, Mikhail Stakhanov написал(а): EG>> /^(Hold)?,(.*?),(.*?),+/ MS> ($echo,$desc) =($2,$3) if ($_ =~ /^(Hold)?,(.*?),(.*?),+/); MS> ^^^^^ всеравно $2 $3 MS> всеравно вот так. А я за чистоту кода, хочу: MS> ($echo,$desc) = $_ =~ /^(Hold)?,(.*?),(.*?),+/); MS> ^^^^^^^ $1 $2 MS> как написать вот это чтобы работало вот так ? (undef, $echo, $desc) = $_ =~ /^(Hold)?,(.*?),(.*?),+/); Eugene -- Сердце - малочувствительный, мускулистый, грубый и жесткий орган.
From: Mikhail Stakhanov 2:5020/932.1 03 Apr 2019 17:38 +0300
To: Eugene Grosbein grosbein.net
Subject: регулярные выражения.
Здравствуйте, Eugene! Ответ на сообщение Eugene Grosbein (2:5006/1) к Mikhail Stakhanov, написанное 03 апр 19 в 08:02: EG> /^(Hold)?,(.*?),(.*?),+/ ($echo,$desc) =($2,$3) if ($_ =~ /^(Hold)?,(.*?),(.*?),+/); ^^^^^ всеравно $2 $3 всеравно вот так. А я за чистоту кода, хочу: ($echo,$desc) = $_ =~ /^(Hold)?,(.*?),(.*?),+/); ^^^^^^^ $1 $2 как написать вот это чтобы работало вот так ? Всего наилучшего, Mikhail
From: Eugene Grosbein grosbein.net 09 Dec 2018 22:50 +0200
To: Brother Rabbit 2:460/5858
Subject: uudecode
09 дек. 2018, воскресенье, в 11:59 NOVT, Brother Rabbit написал(а): BR> Почему иногда поломаные файлы в результате получаются? Что я не так сделал? Всё. Лучше использовать готовый модуль Convert::UU: https://metacpan.org/pod/distribution/Convert-UU/lib/Convert/UU.pm BR> === Import Windows Clipboard Start === BR> $uuedir = "\/home\/fido\/uue"; Обратные слеши не нужны низачем, а только ухудшают читабельность. Двойные кавычки тоже не нужны, если внутри нет переменных для интерполяции - одинарные кавычки для строковых литералов самое то. BR> # директория, в которой складывать разююки. BR> if (defined($area)) { BR> if ( $text =~ /\rbegin 644[ ]+([^ \r]+)\r(.*\r)end\r/i ){ Текстовые файлы под Windows по умолчанию открываются в режиме ":crlf", но не помешает и явно указать это при открытии, см. perldoc open. И не нужно использовать \r вместо нормальных ^ и $ для обозначения начала и конца строки, в том числе и для многострочных переменных - используй /m при матчинге (perldoc perlre). Eugene
From: Eugene Grosbein grosbein.net 24 Nov 2018 12:55 +0200
To: Brother Rabbit 2:460/5858
Subject: JAM
23 нояб. 2018, пятница, в 20:56 NOVT, Brother Rabbit написал(а): BR> Подскажите, есть ли готовые библиотеки для работы с JAM базой и где взять? Как нынче модно спрашивать, в гугле забанили? Первая ссылка по запросу perl fidonet jam это ответ на твой вопрос: http://ftnpl.sourceforge.net/ftnpljam.html ftnpljam - FTN::JAM - Perl module for processing JAM message bases. А оттуда ссылка на общее гнездо всех перловых модулей CPAN (нынче metacpan): https://metacpan.org/release/FTN-JAM Eugene -- Hаучить не кланяться авторитетам, а исследовать их и сравнивать их поучения с жизнью. Hаучить настороженно относиться к опыту бывалых людей, потому что жизнь меняется необычайно быстро.
From: Brother Rabbit 2:460/5858 23 Nov 2018 20:56 +0200
To: All
Subject: JAM
Hi, All! Подскажите, есть ли готовые библиотеки для работы с JAM базой и где взять? Have nice nights. Brother Rabbit.
From: "Viktor V. Kudlak" 2:5030/1374 02 Oct 2017 23:01 +0300
To: Eugene Grosbein grosbein.net
Subject: Задача.
Hello Eugene. 14 Sep 17 16:17, you wrote to Alexandr Kruglikov: AV>>> А можно и без эхотага: AV>>> sed -nre '/^EchoArea .* \-\$gJ /{s/^[a-z]+ +//ig;s/ .*//g;p}' AK>> В его полосатого муха (ОС) не завезли ни sed, ни grep, ни awk... AK>> З.Ы. (Замечу Ышо)#1: в правильных православных OS с демонами всё AK>> проще: AK>> grep -ie "^echoarea" /usr/local/etc/fido/config | awk '{ print $2 AK>> }' EG> Всё ещё проще, так как awk сам прекрасно умеет грепать: EG> awk '$5 == "-$gJ" { print $2 }' тут не совсем верное решение, т.к. поле может быть любым по счету в HPT. Думаю лучше регуляркой делать: awk '/-\$gJ/ { print $2 }' Viktor