这是我第一次尝试使用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)"和同样的问题.我认为这可能是我非常简单的事情.非常感谢!简
Perl的逻辑定义是否有等效的Bash运算符?类似于:
$a = $a // $b;
Run Code Online (Sandbox Code Playgroud)
要么
$a ||= $b;
Run Code Online (Sandbox Code Playgroud) 有这样的事吗?相当于a <= expr <= b或在SQL术语中expr BETWEEN a AND b,expr只评估一次?或者是要求这个变得愚蠢?
我正在尝试编写一个扭转字符串的trival面试问题.
这是我的代码:
#include <string.h>
char* rev( char* str)
{
int i,j,l;
l = strlen(str);
for(i=0,j=l-1; i<l/2 ; i++, j--)
{
str[i] = (str[i] + str[j]);
str[j] = str[i] - str[j];
str[j] = str[i] - str[j];
}
return str;
}
int main()
{
char *str = " hello";
printf("\nthe reverse is %s ...", rev(str));
return 1;
}
Run Code Online (Sandbox Code Playgroud)
基本上,这个给出了分段错误.
我有以下问题:
我得到分段错误可能是因为,字符加起来没有在ascii中定义,因此我不能将它们存储为字符,我正在使用www.codepad.org [我想知道它是否支持ascii !!].我的理解是正确的还是还有别的东西.
我如何纠正问题,对于同一平台[我的意思是为codepad.org交换]
在这里,我必须使用额外的整数l来计算长度.所以通过交换来保存单个字符空间..我正在使用额外的int !!! ..只是为了给观众留下深刻印象:) ...这种做法前夕值得!
这个是针对那些有兴趣编写单元测试/ API测试的人.我希望有一个强大的实现,所以可能的测试用例.我假设如果面试官问这么简单的问题......他肯定想要一些非常抢劫的实施和测试用例.我很少想到:
传递空字符串传递整数
字符串传递整数数组而不是char数组.
很长的弦,
单个字符串字符串的特殊字符.
任何建议/建议都会有所帮助.
大约六个月前我学习了ActionScript和FlashBuilder,最近又听说过Google的GWT和Closure.但在深入研究java之前,我想知道是否有任何类似于GWT的项目,但是使用ActionScript作为开发语言而不是java.是否存在ActionScript-to-javascript交叉编译器或可以使用SWF并生成与javascript UI库进行通信的JavaScript的工具,因此Flash插件变得不必要了?
我想在创建一些游戏窗口(DirectX)后调整其大小,游戏窗口允许鼠标从边缘调整大小.但是我希望自动化这个,因为鼠标很难做到这一点:光标在边缘是不可见的,我必须首先解除对焦窗口,以便能够通过点击边缘来调整大小.要明确:我没有这个游戏的来源,所以我必须制定自己的程序才能做到这一点.
如何才能做到这一点?或者更好:是否已经存在执行这些操作的程序?
在我的Perl脚本中,我LWP::Simple::getstore用来检索图像并存储为文件.但在存储如何检查该文件是否已存在之前?
这是片段
use constant FILE_DIR => "/home/destination/files/";
my $image_path = FILE_FOLDER."$item_id"."_"."$file_date.$image";
my $res = LWP::Simple::getstore($image_url,$image_path);
Run Code Online (Sandbox Code Playgroud)
请帮我解决一下这个.
谢谢
我正在使用Perl中的Parse :: RecDescent解析器,我似乎有最糟糕的时间从它获取信息.在线提供的信息似乎没有非平凡的例子.
这是代码:
event_function: object_list ':' event_list ';'
<defer:
{ #item is a special character with Parse::Recdescent.
print Dumper($item{object_list});
$return = $item[1];
}
>
| object_list ':' ';'
<defer:
{
print Dumper($item{object_list});
$return = $item[1];
}
>
Run Code Online (Sandbox Code Playgroud)
这是输出
PS W:\developers\paulnathan\rd_dir> perl parser.pl testfile
$VAR1 = 4;
$VAR1 = 8;
PS W:\developers\paulnathan\rd_dir>
Run Code Online (Sandbox Code Playgroud)
输入文件正确解析.
stuff, stuff2: pre-operation event = {foo1, foo2};
Run Code Online (Sandbox Code Playgroud)
它应该输出一个由"stuff","stuff2"键入的哈希值.
思考?
编辑:
object_list :
object ',' object_list
<defer:
{
my $retval = ();
$retval = …Run Code Online (Sandbox Code Playgroud) 我有一种情况,我想根据一个相当简单的测试调用两个子程序之一,但参数列表非常复杂.这似乎是使用三元运算符最容易阅读并在C中工作正常,但perl等价物正在逃避我.
代码是这样的
$res = ($d eq 'something' ? \func1 : \func2)(parameters);
Run Code Online (Sandbox Code Playgroud)
但perl对)(序列非常不满,对于我的生活,我无法弄清楚要放在那里的东西
使用=〜运算符进行字符串比较
我有两个数组@a包含abc99_xyz,abc9_xxx和@b包含abc99,abc9作为字符串,我只想将数组@a的abc99_xyz与@b的abc99匹配,但是当我使用时abc9也与@a的abc99_xyz匹配〜=运算符。
代码如下:
@a=qw(abc99_xyz abc9_xxx);
@b=qw(abc99 abc9);
foreach $k(@a)
{
foreach $h(@b)
{
if($k =~ $h)
{
print" $k == $h\n";
}
}
}
Run Code Online (Sandbox Code Playgroud)
仅abc99_xyz应该与abc99匹配,而不与abc9匹配。
perl ×7
actionscript ×1
bash ×1
c ×1
c++ ×1
dbi ×1
directx ×1
exists ×1
file ×1
javascript ×1
oop ×1
string ×1
subclass ×1
subroutine ×1
swap ×1
windows-xp ×1