我在Perl 5.8上,我需要指定一个默认值.我最终这样做了:
if ($model->test) {
$review = "1"
} else {
$review = ''
}
Run Code Online (Sandbox Code Playgroud)
值$model->test
将是"1"
或未定义.如果有某些内容$model->test
,则将$review
其"1"
设置为等于''
.
因为它不是Perl 5.10我不能使用新的时髦定义的或运算符.我的第一反应是使用这样的三元运算符......
defined($model->test) ? $review = "1" : $review = '';
Run Code Online (Sandbox Code Playgroud)
但那也不起作用.
有谁知道如何更有效地分配这个?珍妮
在查看我接手的一些代码时,我遇到了这一行:
my @files = My::Module::DB::raw_info->search_like(customer_handle => $config->{client}, feed => $config->{site}, arrival =>"$date")
Run Code Online (Sandbox Code Playgroud)
我知道这会从一个名为的包中返回一个数组My::Module::DB::raw_info
.
我不确定(我只是学习OOP),是->search_like
指的是什么.
我没有将其视为变量或子程序 My::Module::DB::raw_info
任何提示将不胜感激.我才开始学习这些东西.这就像在火中沐浴.(我知道我以后会更开心)Yikes!
我正在设计一个存储文档的数据库.其中一些文件的时钟刚刚超过64kb,没有一个大于128kb.似乎我唯一的办法是指定我的文本类型,MEDIUMTEXT
其最大大小为16MB.这对我正在做的事情来说似乎有些过分,特别是因为我每天要存储大约一百份文件.我想我的问题是,由于MEDIUMTEXT比TEXT大得多,我是否会遇到性能损失.我不太了解MySQL内部,知道磁盘或内存上是否有一些奇怪的分配问题会让我感到困惑.当然,我们可以在像MongoDB这样现代化的东西中完成所有这些工作,但我无法对此进行签名.:-(
如果将来有人正在努力解决这个问题,我想我会注意到MySQL中的文本类型及其最大尺寸以供参考.
TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB
Run Code Online (Sandbox Code Playgroud)
任何人的建议将不胜感激.珍妮
我有一个哈希,我在Template Toolkit中迭代了它的密钥.这个例子如下......
<SELECT NAME="SelectList_[% feed.num %]" ID="SelectList_[% feed.num %]" SIZE="5" style="width: 250px;" MULTIPLE>
[% FOREACH xvar = feed.xvars.keys %]
<OPTION VALUE="[% xvar %]">[% xvar %]</OPTION>
[% END %]
<OPTION VALUE="X_File_Name">X_File_Name</OPTION>
</SELECT>
Run Code Online (Sandbox Code Playgroud)
我需要做的是按字母顺序排列这个SELECT列表(使用sort,我知道该怎么做.问题是
<OPTION VALUE="X_File_Name">X_File_Name</OPTION>
Run Code Online (Sandbox Code Playgroud)
线.我希望只将值"X_File_Name"添加到feed.xvars哈希.像这样......
[% feed.xvars = { "X_File_Name" => "1" } %]
Run Code Online (Sandbox Code Playgroud)
希望这会将值添加到哈希值(而不是删除它).没有这样的运气.查看模板工具包书和谷歌搜索也不会产生任何结果.有人知道怎么做吗?
我是WATIR测试的新手(我喜欢它!)并且已经碰到了如何将我的WATIR脚本重新聚焦到新打开的窗口的问题.这是我的(简化)脚本....
#!/usr/bin/ruby
require 'rubygems'
require 'watir-webdriver'
browser=Watir::Browser.new
browser.goto("http://0:3050")
browser.text_field(:name,"userkey300203830").set("OKJHNB")
browser.button(:id, "interview48").click
puts "Expected Result:"
puts "A successful display of cars"
if browser.window(:title=>"300203830").exists?
puts " Test passed. New window opened!"
else
puts " Test Failed! No window found"
end
Run Code Online (Sandbox Code Playgroud)
这一切都可以直到最后.单击"interview48"键后,将打开一个标题为"300203830"的新窗口.看起来我找到了但我现在还不知道如何关注那个窗口.
我有一个使用dojo 1.5的表单设置.我正在使用dijit.form.ComboBox和dijit.form.TextBox
Combobox具有"汽车","自行车","摩托车"等价值,而文本框则是Combobox的形容词.因此,无论Combobox中的内容是什么,如果ComboBox确实有值,那么必须在TextBox中填充一些内容.(可选)如果ComboBox中没有任何内容,则TextBox中没有任何内容可以正常使用.事实上,如果Combobox中没有某些内容,则文本框中必须没有任何内容.
在常规编码中,我只需在文本框中使用onBlur事件转到一个函数,该函数检查ComboBox是否有值.我在dojo中看到这不起作用......代码示例如下......
Vehicle:
<input dojoType="dijit.form.ComboBox"
store="xvarStore"
value=""
searchAttr="name"
name="vehicle_1"
id="vehicle_1"
/>
Descriptor:
<input type="text"
dojoType="dijit.form.TextBox"
value=""
class=lighttext
style="width:350px;height:19px"
id="filter_value_1"
name="filter_value_1"
/>
Run Code Online (Sandbox Code Playgroud)
我最初的尝试是在描述符的<input>标记内添加onBlur,但发现这不起作用.
Dojo如何处理这个?是通过dojo.connect参数吗?即使在上面的示例中,组合框具有id"vehicle_1"并且文本框具有id"filter_value_1",但是可以有许多组合框和文本框顺序向上编号.(vehicle_2,vehicle_3等)
任何建议或资源链接将不胜感激.珍妮
我更喜欢perl,但是我对我在一个模块子程序中看到的一条线路有疑问.
my $var = 1;
....
....
....
....
$var;
Run Code Online (Sandbox Code Playgroud)
抛出我的只是看到这$var
一切都在一条线上.这只是回归的迂回方式1
吗?
非常感谢!
简
这是我第一次尝试使用perl进行子类化,我想知道为什么我会得到这个简单的错误...
"无法在/home/dblibs/WebDB.pm中通过包"WebDB :: st"找到对象方法"prepare"第19行." 它似乎找到了模块WebDB ok,但没有找到~st的prepare子例程
首先这里是我的包(两个包都在一个文件中,WebDB.pm)
package WebDB;
use strict;
use DBI;
sub connect {
my $dbh = (DBI->connect ("DBI:mysql:test:127.0.0.1", "root","",
{ PrintError => 1, RaiseError => 0 }));
return bless $dbh, 'WebDB::st';
}
package WebDB::st;
our @ISA = qw(::st);
sub prepare {
my ($self, $str, @args) = @_;
$self->SUPER::prepare("/* userid:$ENV{USER} */ $str", @args);
}
1;
Run Code Online (Sandbox Code Playgroud)
我也尝试用"use base'WebDB'"替换"我们的@ISA = qw(;; st)"和同样的问题.我认为这可能是我非常简单的事情.非常感谢!简
我是复杂数据结构的新手.我有点理解他们背后的想法,但是在获取数据方面遇到了一些困难.我通过使用Data :: Dumper找到了当前问题孩子的结构....
$VAR1 = {
'4' => {
'engine_coded' => 0,
'name' => 'FILTER_1',
'filter_actions' => {
'X_Override_Queue_Level' => 'Value'
},
'filter_criteria' => [
[
'X_Charge',
'=',
'X_CHARGE_1'
]
]
}
};
Run Code Online (Sandbox Code Playgroud)
我需要做的是确保给定一个过滤器名称(在本例中为"4"),"name"有一个值,以及"filter_actions"和"filter_criteria".
任何人都知道如何最好地完成这个?非常感谢!珍妮
我正在清理一些代码,我在服务器日志中看到perl错误是......
Use of uninitialized value in string eq at .....
Run Code Online (Sandbox Code Playgroud)
看代码这条线看起来像这样....
if ($level1 eq $level2) {
Run Code Online (Sandbox Code Playgroud)
好,可以.我想我的问题是这个.问题是$ level1还是$ level2?
我写了一个快速测试试图在本地复制它,看起来像这样....
#!/usr/bin/perl
use warnings;
my $a;
my $b;
if ($a eq $b){
print "....";
}
Run Code Online (Sandbox Code Playgroud)
而且我得到了更多信息错误.
Use of uninitialized value $a in string eq at ./warntest.cgi line 7.
Use of uninitialized value $b in string eq at ./warntest.cgi line 7.
Run Code Online (Sandbox Code Playgroud)
这似乎是不一致的行为.有人有线索吗?珍妮
perl ×7
hash ×2
oop ×2
variables ×2
arrays ×1
database ×1
dbi ×1
dijit.form ×1
dojo ×1
dom-events ×1
field ×1
javascript ×1
mysql ×1
onblur ×1
package ×1
perl-module ×1
ruby ×1
subclass ×1
subroutine ×1
watir ×1