要使用Class :: DBI进行插入,您只需执行以下操作:
my $object = Object::DB->insert({ a => 1, b => 2, c => 3, ...});
Run Code Online (Sandbox Code Playgroud)
但是没有更新的东西.我能想到的最好的是先选择记录然后更新它:
my $object = Object::DB->retrieve($id);
my $object->set( a => 1, b => 2, c => 3, ...};
$object->update;
Run Code Online (Sandbox Code Playgroud)
这是没有效率的,因为我必须首先执行SELECT,然后执行UPDATE而不是只执行一次UPDATE.
使用Class :: DBI有更好的方法吗?我不想做42 $ object-> a(1),$ object-> b(2)等,$ object-> update;
我想禁用HTTP参数的自动XML解析.但是我只找到了Rails 2.x的命令,它们都不适用于3.0:
config.action_controller.param_parsers.delete Mime::XML (application.rb)
ActionController::Base.param_parsers.delete Mime::XML
Run Code Online (Sandbox Code Playgroud)
Rails 3.0中的等价物是什么?
我正在使用perl模块Gtk2::WebKit创建浏览器并截取网页截图.截取页面可见部分的屏幕截图(窗口大小)没有问题.但是,如何拍摄整页的屏幕截图,甚至是窗口中不可见的部分?
我正在寻找命令行工具或库(最好是在Perl中)来下载HTML页面及其所有组件:外部CSS,外部JavaScript,图像,flash或其他对象等.
我还没有找到一个工具来做到这一点.我可以下载HTML页面,并解析HTML以查找所有外部链接.但是如果现有的工具能做到这一点,我宁愿不重新发明轮子.
我有一个适用于不同客户端的脚本,需要将SCP文件发送给不同的主机.根据客户端和服务器的组合,我可能需要使用密码身份验证或公钥身份验证.我事先不能确切地知道使用哪一个.
我使用了2个用于SCP的CPAN库:
问题是两个库都不适用于两种身份验证,我不知道提前使用哪一个.您知道如何使用这两种身份验证方案吗?
为了提高性能,我想为每个页面添加一个相当长的Cache-Control(最多30分钟),因为它们不会经常更改.但是,每个页面还会显示登录用户的名称(如本网站).
问题是当用户登录或注销时:用户名必须更改.如何在保持长缓存控制的同时在每次登录/注销操作后更改用户名?
以下是我能想到的解决方案:
如果我实际上有更多内容与注册用户和新用户不同,这个问题会变得更大.
我有一个简单的有序列表,可能包含100万或更多的项目.此列表只执行了一些操作:
将值添加到列表后,它永远不会更改.我将项目附加到列表,没有插入或删除.
我需要操纵这个大清单,并持久存储它.现在我使用数据库Int => String来表示列表,但我认为应该有一种更有效的方法来实现.
我可以使用memcached,但我认为缺少2个函数:
我用全局变量$ A和$ B创建了一个模块Foo :: Prototype.我想要使用Foo :: Prototype作为基础来导入全局变量$ A和$ B的包Foo :: Bar.我无法想象如何做到这一点.
我知道使用全局变量通常不是一个好习惯,但在这种情况下我想使用它们.
代码如下所示:
package Foo:Prototype;
my ($A, $B);
our @EXPORT = qw($A $B);
sub new {
[...]
$A = 1;
$B = 2;
}
1;
package Foo:Bar;
use base Foo:Prototype qw($A $B);
sub test {
print $A, "\n";
print $B, "\n";
}
1;
# test.pl
Foo:Bar->new();
Foo:Bar->test();
Run Code Online (Sandbox Code Playgroud)
编辑:
我想让Foo :: Prototype的子类尽可能地为其他人编写.我不想写$ self - > {A} - > foo(),而是让人们写$ A-> foo().