我的Perl程序看起来像:
foo/
foo/bar/
for/bar/test.pm
foo.pm
foo/bar.pm
test.pl
Run Code Online (Sandbox Code Playgroud)
并用于perl test.pl启动该程序.我想在foo/bar/test.pm中调试一个sub.如何在该子上设置断点?
我怎样才能做到这一点?
谢谢.
64位系统:
$i=2;print ~$i; # 18446744073709551613
Run Code Online (Sandbox Code Playgroud)
32位系统:
$i=2;print ~$i; # 4294967293
Run Code Online (Sandbox Code Playgroud)
我怎样才能制作$i32位?
在任何系统中,我都需要在Perl中进行便携式按位操作.
我有一个使用ncurses用C编写的程序.它让用户输入并显示它.如果用户输入utf8字符,则无法正确显示.
我将chars用户保存到文件中.而我cat这个文件直接在Shell中,它显示正确.
我搜索了stackoverflow和谷歌,并尝试了几种方法,如与ncursesw链接,显示不正确.
我ldd /usr/bin/screen:libncurses.so.5 => /usr/lib64/libncurses.so.5
screen 可以正确显示用户输入的内容.
如何让ncurses正确显示UTF-8字符?
使用ncurses在C中显示UTF-8字符的一般方法是什么?
我的代码看起来像:
my %var;
my %var_new={};
while(1){
while(my ($k,$v)=each %var){
&a_sub($v);
}
%var={}; # A
map { $var{$_}=$var_new{$_}; } keys %var_new;
%var_new={}; # B
}
sub a_sub { #....} # will fill %var_new
Run Code Online (Sandbox Code Playgroud)
我的程序的内存使用率一直在上升.
似乎Perl没有在A线和B线释放内存.
我如何可以手动Perl来释放内存使用%var和%var_new?
PHP addslashes:
string addslashes(string $ str)
在需要在数据库查询等中引用的字符之前返回带有反斜杠的字符串.这些字符是单引号('),双引号("),反斜杠()和NUL(NULL字节).
使用addslashes()的一个示例是在将数据输入数据库时.例如,要将名称O'reilly插入数据库,您需要将其转义.强烈建议使用DBMS特定的转义函数(例如MySQL的mysqli_real_escape_string()或PostgreSQL的pg_escape_string()),但如果您使用的DBMS没有转义函数且DBMS使用\来转义特殊字符,那么可以使用这个功能.这只是将数据导入数据库,不会插入额外的\.将PHP指令magic_quotes_sybase设置为on将意味着"将被另一个转义".
在Perl中有相当于PHP的addslashes吗?
我有一个进程不断插入sqlite3数据库,另一个进程从sqlite3数据库中选择(慢速sql).
sqlite3在读取时锁定数据库吗?
我想确保每次写成功.读失败是可以接受的.
码:
# A:
$dbh->do(qq/insert into foo(cl) values('test')/);
# B:
$dbh->do(qq/insert into foo(cl) values('test')/) or warn $dbh->errstr;
# C:
eval { $dbh->do(qq/insert into foo(cl) values('test')/); };
warn "error : $@ " if $@;
Run Code Online (Sandbox Code Playgroud)
所有输出:
DBD::mysql::db do failed: Duplicate entry 'test' for key 'cl' at a.pl line 9.
Run Code Online (Sandbox Code Playgroud)
我不希望这个任意警告/错误消息发送到stderr.我想用warn $dbh->errstr.
perl a.pl 2>/dev/null 会抑制错误信息,但我想知道如何在脚本中执行此操作?
我想(<a href='http://.*')从使用perl的网页获取所有链接,我应该使用哪个模块?或者只是自己使用正则表达式?
是否有一个小而美丽的程序来演示Perl OO,我可以学习和遵循; 使用bless,包括构造函数,析构函数,继承和几乎所有的OO东西?
谢谢.
我有use strict;use warnings;我的perl脚本;
但无法找到此错误:
sub new {
#....
my $self={};
$self->{databas}="..."; # 'e' is missing
#....
}
sub foo {
my $self=shift;
print $self->{database}; # undef
}
Run Code Online (Sandbox Code Playgroud)
我花了好几个小时才发现该数据库被误导了sub new.
use strict;use warnings; 没有帮助.
我怎样才能避免这个错误?