ZET36: Win32::Registry, http://search.cpan.org/~jdb/libwin32-0.28/Registry/Registry.pm Юзай это для реестра...там вроде все написано
вопрос Такой вопрос. Есть скрипт для веб)) : Code: use strict; use CGI qw/:standard/; my $cgi = new CGI; <br /><br /> my $file = $cgi->param('file'); <br /><br /> # grab date base $file =~ m/(.*).txt/; my $date = $1; <br /><br /> my @images = <Images/$date/*.jpg>; my @audio = <Audio/$date/*.mp3>; <br /><br /> <br /><br /> print "Content-type: text/html\n\n"; <br /><br /> print "<html><body>"; <br /><br /> print "<!-- generatede -->"; <br /><br /> open(INPUT, "<$file"); while (<INPUT>) { # add breaks... if (/^$/) { print "<br /><br />"; } print; } close(INPUT); <br /><br /> print "<br />"; <br /><br /> foreach (@images) { print "<img src='$_'><br /><br />"; } <br /><br /> print "<br />"; <br /><br /> print "<h3>Sound Bites</h3> (xxxxxxxx)<br /><br />"; <br /><br /> foreach (@audio) { print "<a href='$_'>$_</a><br /><br />"; Хотелось бы понять, кроме чтения произвольных файлов есть возможность исполнения команд или чего либо еще?
выполнять команды неполучиться, так как в open(INPUT, "<$file"); определено что открывается файл на чтение символом "<" если бы было open(INPUT, "$file"); то можно было бы подставив пайп выполнять команды, типа .pl?file=|id
Can't call method "scheme" on an undefined value at C:/Perl/lib/HTTP/Cookies.pm line 44. (v5.10.0 built for MSWin32-x86-multi-thread) как от этого избавиться?
netf0x открывать файл надо так open(KARTINKA, '<', '4.jpg'); где содержимое файла будет в Дескрипторе KARTINKA который прочитать можно так print <KARTINKA>; вот советую почитать учебник для новичков по перлу http://dump.ru/files/n/n6133429141/ там есть раздел где описываются много функциий с файлами и папками
ошибка говорит "немогу пробить метод "scheme" в неопределённом значении в файле C:/Perl/lib/HTTP/Cookies.pm" эта ошибка содержится в 44 строке кода если можно неплохо бы увидеть сам код
да ну http://www.activestate.com/Products/activeperl/ PS мой скрипт читает почту на mail.ru. сначала запрос к http://win.mail.ru/cgi-bin/auth, потом идет по линку вида http://win.mail.ru/cgi-bin/checkcookie?id=765b5d705151745f19050219 затем заходит в папку Входящие и читает письма. возможно это поможет
Piflit хех я так и незнаю где у тебя ошибка невидя кода)) ну максимум могу посоветовать почитать вот это www.opennet.ru/base/dev/perl_lwp.txt.html (там есть описание метода cookie_jar интуиция подсказывает что напутал ты там в нём)
Как ты такой ошибки добился то? Вот пример скрипта который логинится на мейл.ру, парсит список сообщений и скидывает в файл содержимое писем: Code: #!/usr/bin/perl -w use LWP::UserAgent; use HTTP::Cookies; if (@ARGV < 2){ print "Usage: script.pl login password"; exit; } ($login, $domain) = split(/@/,$ARGV[0]); $pwd = $ARGV[1]; $ua = LWP::UserAgent->new; $ua->cookie_jar(HTTP::Cookies->new(file => "cookies.txt")); $res = $ua->post( "http://win.mail.ru/cgi-bin/auth", {Login => $login, Domain => $domain, Password => $pwd} ); $res = $res->as_string; open(FILE, '>>letters.txt') || die "Could not open letters.txt\n"; if($res =~ /<HTML>(.*)<\/HTML>/) { $ua->get($1); $res = $ua->get('http://win.mail.ru/cgi-bin/msglist?folder=0'); $res = $res->as_string; while($res =~ m/title="(.*?)"><a href="readmsg\?id=(.*?)"/g) { print FILE "From: $1 ID: $2\n"; $msg = $ua->get('http://win.mail.ru/cgi-bin/readmsg?id='.$2)->as_string; if($msg =~ /<div id=let_body>(.*?)<\/div>/ms){print FILE "Body:\n$1\n-----------------------------------------------------------";} } }
походу с перезаписью кук проблема. my $cookies = HTTP::Cookies->new(); $ua->cookie_jar($cookies); ящики по очереди парсятся. значит в конце цикла надо $cookies->clear; ?
неподскажите есть ли в перле возможность работы с ресурсами библиотек. ну например в джаваскрипте что бы показать картинку pagerror.gif хранящуюся в библиотеке shdoclc.dll оформлять путь к ней нужно так res://C:\WINDOWS\system32\shdoclc.dll/pagerror.gif дайте пожайлуста чтонибудь почитать об функциях работы с ресурсами в перле
Хм...ИМХО, скорее всего это реализовано в модулях Win32::*, глянь на CPAN'е Глянь модуль Win32::Exe, http://search.cpan.org/~smueller/Win32-Exe-0.11/lib/Win32/Exe.pm Может оно тебе надо? Вроде умеет работать с ресурсами(иконки точно), с exe-файлами, дллки - те же PE, может подцепит, я хз, не сталкивался =)
опять начал постигать перл ) появился такой вопрос . как из текста : fsafsdtwret4wtg gwevdsgreww sid=q243W fsdfdewrtgdoprewtgdfhrrreg fsddfgb выдернуть sid=q243W ?
Code: $s='fsafsdtwret4wtg gwevdsgreww sid=q243W fsdfdewrtgdoprewtgdfhrrreg fsddfgb'; if($s=~/(sid=\w{5})/) {print $1}
Code: $s='fsafsdtwret4wtg gwevdsgreww sid=q243W fsdfdewrtgdoprewtgdfhrrreg fsddfgb'; if($s=~/(sid=\w{1,})/) {print $1}
хмм... почему когда я использую : $inpoisk='fsafsdtwret4wtg gwevdsgreww sid=q243D wasfsdarwfv'; $inpoisk=~/(sid=\w{1,})/; print $inpoisk; у меня выводит fsafsdtwret4wtg gwevdsgreww sid=q243D wasfsdarwfv ?