小编eve*_*box的帖子

如何在Perl程序中的特定文件上设置断点?

我的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.如何在该子上设置断点?

我怎样才能做到这一点?

谢谢.

perl

20
推荐指数
2
解决办法
1万
查看次数

在Perl中是否有等效的`int,short,long`?

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中进行便携式按位操作.

perl

9
推荐指数
2
解决办法
743
查看次数

如何让ncurses在C中正确显示UTF-8字符?

我有一个使用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字符的一般方法是什么?

c linux screen ncurses

7
推荐指数
1
解决办法
4958
查看次数

如何在Perl中释放内存?

我的代码看起来像:

 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

perl garbage-collection

5
推荐指数
2
解决办法
9449
查看次数

在Perl中有相当于PHP的addslashes吗?

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吗?

perl

3
推荐指数
1
解决办法
1265
查看次数

在SQLite3中选择是否锁定数据库?

我有一个进程不断插入sqlite3数据库,另一个进程从sqlite3数据库中选择(慢速sql).

sqlite3在读取时锁定数据库吗?

我想确保每次写成功.读失败是可以接受的.

sqlite

3
推荐指数
1
解决办法
4384
查看次数

如何从DBI中抑制任意警告/错误消息?

码:

# 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 会抑制错误信息,但我想知道如何在脚本中执行此操作?

perl

3
推荐指数
1
解决办法
2402
查看次数

如何使用perl获取网页中的所有链接?

我想(<a href='http://.*')从使用perl的网页获取所有链接,我应该使用哪个模块?或者只是自己使用正则表达式?

perl html-parsing web-scraping

2
推荐指数
1
解决办法
952
查看次数

是否有一个小而美丽的程序演示perl OO?

是否有一个小而美丽的程序来演示Perl OO,我可以学习和遵循; 使用bless,包括构造函数,析构函数,继承和几乎所有的OO东西?

谢谢.

perl

2
推荐指数
1
解决办法
211
查看次数

如何检查perl 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; 没有帮助.

我怎样才能避免这个错误?

perl

2
推荐指数
1
解决办法
416
查看次数