Автор Тема: Поиск символа #  (Прочитано 3629 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поиск символа #
« : 10 Марта 2004, 11:50:28 »
Трямки всем,
Помогите с проблемой - не могу отыскать в файле символ #
Пытаюсь сделать следующий поиск
/\\A\\#/
и
/^\\#/
ничего не выходит - по файлу поиск похоже не идет - вместо того, что бы вывести нужную строку он выводит всякий бред, ну не совсем бред, а просто количество сих символов в файле:

skif@FreeBSD :/home/skif/1.pl
1
1
1
skif@FreeBSD :

полный код
#!/usr/bin/perl
use DBI;
open (passw, "/usr/local/etc/squid/passwd");

while (){
if ($_ =/^\\#/) {

print "$_ \\n";
}
}

close(passw);
Всё будет хорошо - я договорился!

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Поиск символа #
« Ответ #1 : 10 Марта 2004, 12:09:38 »

#!/usr/bin/perl

open F, "
while( ) {

    print "$_\\n" if index( $_, \'#\' ) + 1;
}
0 OK, 0:1

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поиск символа #
« Ответ #2 : 10 Марта 2004, 12:13:03 »
Сейчас попробую, но объясните почему работает так:

Делаю
#!/usr/bin/perl
use DBI;
open (passw, "/usr/local/etc/squid/passwd");

while (){
$line=$_;
if ($line != /^\\#/) {

print "$_";
}
}

close(passw);

Получаю
skif@FreeBSD :/home/skif/1.pl
# Optima-Telecom Users
# krez:ycm0mxBKEKRqQ
# masyanya:OBVeNe17mPmEE
skif@FreeBSD :
Почему?
Всё будет хорошо - я договорился!

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поиск символа #
« Ответ #3 : 10 Марта 2004, 12:16:34 »
Угу, работает, спасибо!
Всё будет хорошо - я договорился!

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Поиск символа #
« Ответ #4 : 10 Марта 2004, 12:35:24 »
Цитировать
if ($_ =/^\\#/) {

if ($_ =~ /^\\#/) {
Почувствуй разницу, Люк.:)
2B OR NOT 2B = FF

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поиск символа #
« Ответ #5 : 10 Марта 2004, 12:35:50 »
Да, вот только маленький глюк - мне эту связку надо использовать в  другом контексте:

bla-bla-bla

open (passwd_file, "
while( ) {

($pass_str,$pass_param)=split(":",$_);

if index( $_, \'#\' ) + 1 {
print "skipped \\n";
}
else {

############################################

#################################################
#                                               #
#       Database connect and select column      #
#                                               #
#################################################

my ($dbh,$sth,$count);
$dbh = DBI->connect
                ("DBI:mysql:host=freebsd;database=squid","$operator","$oper_pass")
                or die "cann\'t open db table $!";
а он в такой сцепке работать не желает.... :(((
Всё будет хорошо - я договорился!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Поиск символа #
« Ответ #6 : 10 Марта 2004, 12:38:51 »
Нам догадываться что он не делает?
The documentations is your friend

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поиск символа #
« Ответ #7 : 10 Марта 2004, 12:42:31 »
Все, снимаю вопрос -
open (F, "
while( ) {

    if ($_,(index( $_, \'#\' ) + 1)){
    print $_;
    }
    }
close(F);


- Ступил... извиняюсь
Всё будет хорошо - я договорился!

 

Sitemap 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