Forum Webscript.Ru
Программирование => Perl => Тема начата: Skif от 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);
-
#!/usr/bin/perl
open F, "
while( ) {
print "$_\\n" if index( $_, \'#\' ) + 1;
}
-
Сейчас попробую, но объясните почему работает так:
Делаю
#!/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 :
Почему?
-
Угу, работает, спасибо!
-
if ($_ =/^\\#/) {
if ($_ =~ /^\\#/) {
Почувствуй разницу, Люк.:)
-
Да, вот только маленький глюк - мне эту связку надо использовать в другом контексте:
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 $!";
а он в такой сцепке работать не желает.... :(((
-
Нам догадываться что он не делает?
-
Все, снимаю вопрос -
open (F, "
while( ) {
if ($_,(index( $_, \'#\' ) + 1)){
print $_;
}
}
close(F);
- Ступил... извиняюсь