我正在学习用Perl编写CGI应用程序 - Kevin Meltzer.布伦特米哈尔斯基
本书中的脚本大多以此开头:
#!"c:\strawberry\perl\bin\perl.exe" -wT
# sales.cgi
$|=1;
use strict;
use lib qw(.);
Run Code Online (Sandbox Code Playgroud)
什么是$ | = 1行; 如何隔离它,例如.$ | = 1; 或$ | = 1; ?为什么要使用严格; 在$ | = 1之后; ?
谢谢
我偶尔会看到Perl5i被提及.它看起来很棒,让事情变得更容易.一些问题:
该模块是否与其他模块兼容,例如Dancer,Mojolicious,XML :: RSS等?
它与Moose兼容,还是具有更好的OO功能?
它包装了最好的CPAN模块,如果我的脚本使用这些...
use strict;
use utf8::all;
use XML::RSS::JavaScript;
use DateTime::Format::Mail;
Run Code Online (Sandbox Code Playgroud)
......我应该用以下代替它:
use perl5i::2;
use XML::RSS::JavaScript;
use DateTime::Format::Mail;
Run Code Online (Sandbox Code Playgroud)任何经验,好的和坏的,请分享.
我在CPAN上遵循Rose :: DB :: Object教程并设置了三个包.
package My::DB::Object;
use My::DB;
use base qw(Rose::DB::Object);
sub init_db { My::DB->new }
package My::DB;
use base qw(Rose::DB);
...
package Motorcycle;
use base 'My::DB::Object';
__PACKAGE__->meta->setup
(
...
);
__PACKAGE__->meta->make_manager_class('motorcycles');
Run Code Online (Sandbox Code Playgroud)
在申请中:
package main;
use Motorcycle;
use Mojolicious::Lite;
Run Code Online (Sandbox Code Playgroud)
无法使用此错误进行编译:
My/DB/Object did not return a true value <eval 2> line 2…
Run Code Online (Sandbox Code Playgroud)
问候和感谢.
我使用CPAN工具安装LWP,但失败了.然后我使用了PPM工具.我在PPM中找不到LWP,但仅限于libwww-perl(LWP).它们的名称是否相同?
我正在使用Strawberry Perl.
如果连接到MySQL:
my $schema = MyDatabase::Main->connect("dbi:mysql:database=$database;host=$host",'root','', {mysql_enable_utf8 => 1});
Run Code Online (Sandbox Code Playgroud)
连接被强制为utf8;
连接到SQLite:
my $schema = MyDatabase::Main->connect('dbi:SQLite:data/sample.db', {sqlite_unicode => 1});
Run Code Online (Sandbox Code Playgroud)
连接似乎不在utf8中;
目的是消除在获取数据时必须使用decode():from:
Mojo::ByteStream->new($cycle->type)->decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
至:
$cycle->type
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在学习mojolicious :: lite。
在路由器中,将参数委托给控制器,使用此代码可以:
get '/hello/:name' => sub {
my $self = shift;
ControllerTest::hello($self);
};
Run Code Online (Sandbox Code Playgroud)
是否应该有任何简便的方法,例如:
get '/hello/:name' => ControllerTest::hello( shift ); #this code not work
Run Code Online (Sandbox Code Playgroud)
谢谢。
这是我的测试代码:我正在使用win32草莓perl.
使用utf8 :: all; 我的$ input =;
当键入汉字时,
它显示错误:
utf8 "\xAD" does not map to unicode .....
Run Code Online (Sandbox Code Playgroud)
我也用utf8编写了一个脚本:: all来打印汉字,不能成功.如果只使用utf8或没有utf8,我可以通过编码来打印中文字符.
如何设置其他编码?
只是决定使用哪个.可移动类型或Wordpress.MT有一个重要的优势:静态发布.由于wp有WP Super Cache,有没有理由使用Movable Type?
只需从perl cook book 2nd ed pp.796中复制此代码即可
它返回:400 URL必须是绝对的.
这段代码出了什么问题?
#!"c:\strawberry\perl\bin\perl.exe" -w
use 5.006;
use strict;
use LWP::Simple;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $resp = $ua->post("www.amazon.com/exec/obidos/search-handle-form",
{ "url" => "index-books",
"field-keywords" => "perl"}
);
my $content = $resp->content;
print $content, "\n";
Run Code Online (Sandbox Code Playgroud) 我有一个哈希引用数组.散列中的日期字段存储在纪元中.在返回数组之前,我必须将其格式化为人类可读.以下是我的代码:
for my $post (@sorted) {
$post->{date} = format_time($post->{date});
push @formatted, $post;
}
Run Code Online (Sandbox Code Playgroud)
我试过了
my @formatted = map {$_{date} = format_time($_{date})} @sorted;
Run Code Online (Sandbox Code Playgroud)
除{日期}之外的所有字段都将被删除.
有更聪明的方法吗?
谢谢
在使用Perl编写CGI应用程序时,请使用以下代码来记录访问者.
(my $digits = #ENV{'REMOTE_ADDR'}) =~ s/\.//g;
my $address = pack("C4", $digits);
Run Code Online (Sandbox Code Playgroud)
在perldoc,
打包模板,列表
"C4"应该是模板.这是什么意思?
我正在使用qpython3.班级没有改变int().以下是qpython3控制台中的示例代码.
>>> a = "8"
>>> a
'8'
>>> type(a)
<class 'str'>
>>> int(a)
8
>>> type(a)
<class 'str'>
Run Code Online (Sandbox Code Playgroud)
该类保持字符串.将int赋值给变量作为对比:
>>> a = 8
>>> a
8
>>> type(a)
<class 'int'>
Run Code Online (Sandbox Code Playgroud)
这里的问题是如果int从中获取一个字符 input(),则禁止进一步的数学运算和逻辑比较.
perl ×10
arrays ×1
cgi ×1
cjk ×1
dbix-class ×1
hash ×1
mojo ×1
mojolicious ×1
movabletype ×1
perl-module ×1
perl5 ×1
perl5i ×1
python ×1
python-3.x ×1
sqlite ×1
unicode ×1
utf-8 ×1
wordpress ×1