Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
Ребята, весь мозг изломал, подскажите пожалуйста! Есть файл с масками для регулярных выражений. Я его читаю, и потом в соответствии с масками считаю сколько у меня файлов каждого вида, подсовывая маску в ls - grep. Все было хорошо, пока не принесли маску с кучей вот таких скобок: {} Перл эту маску воспринимает как массив! Если сказать printf("%s", $mask), то он напечатает вот такую пургу: ARRAY(0x6b0a2d0) И в grep такая-же пурга улетает. Подскажите, как заставить его не интерпретировать, а воспринимать её просто как строку? От гугля меня уже на клаву рвёт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 14:58 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
Barsik72, что я делаю не так? Код: perl 1. 2. 3. 4. 5. результат: test 1 {123} 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 16:05 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
Q.Tarantino, не экранировать ли скобку то надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 17:46 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
kunaksergey, В одинарных то кавычках зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 18:22 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
vklekunaksergey, В одинарных то кавычках зачем? а это тут причем? я так понял что проблема с выводом. ТС условие задачи описал очень туманно. Для полного понимания пусть хоть кусок кода приведет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 22:58 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
kunaksergeyQ.Tarantino, не экранировать ли скобку то надо. а надо? p.s. каков вопрос - таков ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 22:58 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
Q.Tarantino, Код такой: 1. Засосал конфиг из файла. my $cfg = new Config::Simple($cfg_file) || die $!;. my %config = $cfg->vars();. Файл а-ля реестр виндовз. Нахожу нужную ветку, содержимое читаю в переменную: my $patt = $config{$1.'/FileRollPolicy.FilePattern'} || '*' Ну т.е. если есть регулярка на имена файлов, буду применять ее, нет - все файлы считать буду Далее вывожу это на экран (для проверки) и передаю в функцию list_ftp($host, $port, $user, $pass, $dir, $patt); функция открывает соединение и считает количество файлов по маске в каталоге (кусок ее кода): my $ftp = Net::FTP->new(Host=>$_[0], Port=>21, Debug=>0, Passive=>0, Timeout=>10); if(!defined($ftp)){ my $ftp = Net::FTP->new(Host=>$_[0], Port=>21, Debug=>0, Passive=>1, Timeout=>10) || return 0; } $ftp->login($_[2], $_[3]); my @files = grep {/$_[5]/} $ftp->ls($_[4]); $count = scalar(@files); $ftp->quit(); 5-й аргумент и есть маска, т.е. регулярное выражение. Работает со всеми выражениями, кроме тех, где есть {}, к примеру, s/^(.{5,})_(.{5,})_(.{3})_(\d{14})\.(\d{1,})\.(\d{4})/$5/ при печати printf(%s,$patt) говорит что это массив: ARRAY(0x6f95808) ЧО делать? В файле экранировать скобки не могу - это конфиг чужой работающей программы, причем он достаточно часто меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 07:23 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
Barsik72ЧО делать? во-первых, вот что: Код: 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. во-вторых, фигурные скобки в регулярном выражении не имеют прямого отношения к возвращению переменной типа анономный массив. в-третьих, приведи живые данные, а именно, массив, который возвращает $ftp->ls и регулярные выражения, с которыми сравниваются члены массива в-четвёртых, покажи строку, где присваивается значение переменной $patt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 16:46 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
пункт в-четвёртых снимается, я не увидел сразу my $patt = $config{$1.'/FileRollPolicy.FilePattern'} || '*'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2015, 16:51 |
|
||
|
perl: как загнать в строковую переменную фигурные скобки?
|
|||
|---|---|---|---|
|
#18+
[quot volodin661]Barsik72ЧО делать? во-первых, вот что: Код: 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. во-вторых, фигурные скобки в регулярном выражении не имеют прямого отношения к возвращению переменной типа анономный массив. ясно в-третьих, приведи живые данные, а именно, массив, который возвращает $ftp->ls а как это сделать? Я perl только начал изучать и регулярные выражения, с которыми сравниваются члены массива реальное выражение вот: s/^(.{5,})_(.{5,})_(.{3})_(\d{14})\.(\d{1,})\.(\d{4})/$5/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 12:40 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=39119522&tid=1461348]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 351ms |

| 0 / 0 |
