Обсуждение Программирование на Perl/Python

Эта тема предназначена для обсуждения и решение любых проблем, связанных с программированием на языке Perl/Python, обмена секретами, опытом и помощи в программирование другим пользователям.
 

cz

Ословед
Учу perl (по книге Клинтона Пирса)...появились ворпосы:
1)нуна сохранить cookie, в книге это описано след-м образом
print header(-cookie => $cookie)
... но в данном случае выводится информация о cookie в HTML, как передать cookie браузеру по другому?
2)как опытные "перловщики" организовывают аккаунты: с личной информацией, панелью управления, опросами, комментариями к чему либо и т.д. (типа как на этом форуме)?
 
cz написал(а):
Учу perl (по книге Клинтона Пирса)...появились ворпосы:
1)нуна сохранить cookie, в книге это описано след-м образом
print header(-cookie => $cookie)
... но в данном случае выводится информация о cookie в HTML, как передать cookie браузеру по другому?
2)как опытные "перловщики" организовывают аккаунты: с личной информацией, панелью управления, опросами, комментариями к чему либо и т.д. (типа как на этом форуме)?
2) через дазы банных все это делается.
 

cz

Ословед
хе...похоже вопрос сформулирован неточно:
как организовать работу с аккаунтом: с личной информацией, панелью управления, опросами, комментариями к чему либо и т.д. (типа как на этом форуме)?
чтобы скрипты знали с каким пользователем они сейчас имеют дело (и в зависимости от юзера выводили соответ-ий HTML)
 

cz

Ословед
Имеются некоторые статистические данные? можно-ли на их основе построить график (или диаграмму), ну и вывести естессно в HTML?

PS
врядли это мона сделать средствами перла, просто не нашёл подходящей темы...
 
cz написал(а):
Имеются некоторые статистические данные? можно-ли на их основе построить график (или диаграмму), ну и вывести естессно в HTML?

PS
врядли это мона сделать средствами перла, просто не нашёл подходящей темы...
не знаю как в перле но в python есть pyplot с помощью которого можно сразу строить графики не отходя от кассы переводя в пнг.Наверняка есть и для перла на cpan.com
 

cz

Ословед
в принципе есть идея создания диаграммы:
закинуть в одну строку (уже в HTML) n раз <img> в виде тонкой (допустим красной) полоски...
вроде на этом форуме результаты опроса выводятся по такомуже принципу... или я неправ?
 
cz написал(а):
в принципе есть идея создания диаграммы:
закинуть в одну строку (уже в HTML) n раз <img> в виде тонкой (допустим красной) полоски...
вроде на этом форуме результаты опроса выводятся по такомуже принципу... или я неправ?
хм а ты внутрь страницы загляни да посмотри как оно выводится ))Думаю тут акромя пхп и джаваскриптс ниче нету.
 

Serge

Ословед
cz написал(а):
в принципе есть идея создания диаграммы:
закинуть в одну строку (уже в HTML) n раз <img> в виде тонкой (допустим красной) полоски...
вроде на этом форуме результаты опроса выводятся по такомуже принципу... или я неправ?
n раз не надо. Сделай gif с красным (допустим) пикселем 1х1 и растягивай его на длину и ширину столбика диаграммы тегами width и height
 
R

r0b

cz: Учите спецификацию HTTP протокола... Посылайте заголовок Set-Cookie перед Content-Type. или use CGI (perldoc CGI)

sinisha, php тоже не шлет заголовки самостоятельно. Это за него делает mod_php для апача. Если поставить mod_perl, то необходимось в отправке заголовков отпадет, и наоборот, если засунуть PHP в CGI-окружение, то придется отправлять заголовки.
 
R

r0b

Рисовать можно либо ImageMagick'ом, либо GD. Ну а если простенькие диаграммки, то как на форуме - достаточно сурец посмотреть
 
R

r0b

Может в perl-golf поиграем? А проблемы - это неинтересно :(
 
Помогите пожалуйста, написал простенький сервер на перл, все работает, но никак не магу сделать, чтобы по определенной команде клиента(связывается с сервером телнетом) введенное сообщение отправилось всем соединенным с сервером клиентам. Т.е алгоритм такой: пользователь вводит сообщение, оно передается серверу, сервер его обрабатывает(это все я сделал) и отсылает это сообщение всем клиетам, соединенным с сервером(вот это не получается)
Код сервера:
Код:
#!/usr/bin/perl

use IO::Socket;
use IO::Select;


    #Create a socket to listen on.
    #
    my $listener = IO::Socket::INET->new( LocalPort => 8008, Listen => 5, Reuse => 1 );
    
    die "Can't create socket for listening: $!" unless $listener;
    print "Listening for connections on port 8008\n";
    
    my $readable = IO::Select->new;     # Create a new IO::Select object
    $readable->add($listener);          # Add the listener to it
    
    while(1) {
    
        # Get a list of sockets that are ready to talk to us.
        #
        my ($ready) = IO::Select->select($readable, undef, undef, undef);
        foreach my $s (@$ready) {
            
            # Is it a new connection?
            #
            if($s == $listener) {
            
                # Accept the connection and add it to our readable list.
                #
                my $new_sock = $listener->accept;
                $readable->add($new_sock) if $new_sock;
                
                print $new_sock "Welcome!\r\n";
	   
                
            } else {  # It's an established connection
            
                my $buf = <$s>;   # Try to read a line
                
                # Was there anyone on the other end?
                #
                if( defined $buf ) {
                    
                    # If they said goodbye, close the socket. If not,
                    # echo what they said to us.
                    #
	    if ($buf =~ /goodbye/i) {
                        		print $s "See you later!\n";
                        		$readable->remove($s);
                        		$s->close;
                    } elsif ($buf =~/.help/i) {
			$answer="Help command";
			print $s "$answer\r\n";
} else {
                        		print $s "You said: $buf\n";
                    }
                    
                } else { # The client disconnected.
                
                    $readable->remove($s);
                    $s->close;
                    print STDERR "Client Connection closed\n";
                    
                }
            }
        }
    }
 
а как можно исправить такое: командная строка не распознает русские буквы и в скриптах невозможно вывести сообщение русскими буквами. Например print "Привет"; выводит следующее: "ОПХБЕР!"
 
Nex написал(а):
а как можно исправить такое: командная строка не распознает русские буквы и в скриптах невозможно вывести сообщение русскими буквами. Например print "Привет"; выводит следующее: "ОПХБЕР!"
с шрифтами по изгаляйся
*общибся,с кодировками :)
 

Shell

Ословед
Nex написал(а):
а как можно исправить такое: командная строка не распознает русские буквы и в скриптах невозможно вывести сообщение русскими буквами. Например print "Привет"; выводит следующее: "ПРЕВЕД!"
За это скажи спасибо Билу Гейтсу, который специально для русских сделал две разные кодировки в консольных приложениях (типа Perl) и в окошках. Лучше в Far-е программу набивать, то что на экран - в DOS кодировке, а остальное - в Windows. Или используй функцию для перекодировки.
print win2dos("Привет!");
Код:
sub win2dos {
    my $str = shift;
    $str =~ tr[\xC0-\xFF\xA8\xB8][\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1];
    return $str;
}
sub dos2win {
    my $str = shift;
    $str =~ tr[\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1][\xC0-\xFF\xA8\xB8];
    return $str;
}
 
Доброго времени суток!
Интересует следующее, ни кто не баловался связкой python + postgre?
 
F

flanker

а как можно исправить такое: командная строка не распознает русские буквы и в скриптах невозможно вывести сообщение русскими буквами. Например print "Привет"; выводит следующее: "ОПХБЕР!"

use encoding 'cp1251';
Укажет в какой кодировке записано в файле.

Код:
use encoding "cp1251", STDOUT => "cp866";
print "Привет";

И помни, все строковые переменные в перл (с некоторых пор) по-любому в utf8 кодировке!
Когда ты не указываешь кодировку, то подразумевается latin1.
 

grid

Ословед
Просветите плиз какой архив Perl'a скачать и как правильно установить его под Windows.
 
Сверху