我们希望为每个用户提供别名,以便我们可以在讨论中引用它们,同时保护其身份.这些别名应该是唯一的.
在简单的方法是简单地使用串行列,但整数并不令人难忘.我们想使用真实的人名,以便我们记住别名.
另一种简单的方法是在某处找到名字列表,对它们进行编号,并使用SERIAL从列表中获取名称.列表用完后,添加更多名称.
但是有没有一些聪明的方法将int映射到名称?
我们目前有大约2,000名用户并且正在增长,但我怀疑我们将成为Google.
我已经获得了一些Perl脚本来部署.
查找和安装这些脚本使用的所有模块的最简单方法是什么?
编辑:
根据我的发现,没有条件包含或包含在evals中.
我参与了一个新的项目,Perl是必须的.我来自一个很好的Ruby基础,想要在Perl和Ruby之间快速介绍或映射,因为我听说Perl和Ruby的语法非常接近(对功能一无所知).
到目前为止,我工作的项目只在源代码中使用ASCII.由于I18N领域即将发生的一些变化,以及我们在测试中需要一些Unicode字符串,我们正在考虑咬住子弹并将源代码移动到UTF-8,同时使用utf8pragma(use utf8;)
由于代码现在是ASCII,我不希望代码本身有任何问题.但是,我不太清楚我们可能会遇到任何副作用,而我认为考虑到我们的环境(perl5.8.8,Apache2,mod_perl,带FreeTDS驱动程序的MSSQL服务器),我很可能会得到一些副作用.
如果你过去做过这样的迁移:我可以期待什么问题?我该如何管理它们?
列表中的值的数量只能通过迭代其值或将其转换为数组来确定.将其分配给标量不会返回项目计数:
my $n = ('a', 'b', 'c'); # $n = 'c'
Run Code Online (Sandbox Code Playgroud)
有一个"空括号"成语,可以用来获取元素的数量:
my $n = () = ('a', 'b', 'c'); # $n = 3
Run Code Online (Sandbox Code Playgroud)
它在内部是等同的
my $n = @{[ 'a', 'b', 'c' ]};
Run Code Online (Sandbox Code Playgroud)
?
假设我有一个由三个表组成的以下简化示例数据库:
CREATE TABLE people (
person_id INTEGER PRIMARY KEY,
person_name VARCHAR(100)
);
CREATE TABLE events (
event_id INTEGER PRIMARY KEY,
event_name VARCHAR(100),
event_creator INTEGER
CONSTRAINT fk_event_creator REFERENCES people(person_id)
);
CREATE TABLE event_attendees (
event_id INTEGER NOT NULL
CONSTRAINT fk_event_attendee_event
REFERENCES events(event_id),
person_id INTEGER NOT NULL
CONSTRAINT fk_event_attendee_person
REFERENCES people(person_id),
role CHAR(1), -- O: organizer, P: performer, S: speaker, G: guest
CONSTRAINT pk_event_attendees PRIMARY KEY (event_id, person_id)
);
Run Code Online (Sandbox Code Playgroud)
给定一个event_id,我可能想要查询所有组织者的名字,考虑到person_id我可能想要找到这个人是该事件的客人或创建者的所有事件的名称,依此类推.
我知道如何使用简单的SQL做所有这些.你能告诉我在设置DBIx :: Class时需要设置哪些结果类以及需要指定哪种关系?
我遇到了一些奇怪的Perl行为:在regexp中使用Posix字符类完全改变了结果字符串的排序顺序.
这是我的测试程序:
sub namecmp($a,$b) {
$a=~/([:alpha:]*)/;
# $a=~/([a-z]*)/;
$aword= $1;
$b=~/([:alpha:]*)/;
# $b=~/([a-z]*)/;
$bword= $1;
return $aword cmp $bword;
};
$_= <>;
@names= sort namecmp split;
print join(" ", @names), "\n";
Run Code Online (Sandbox Code Playgroud)
如果使用[az]更改为注释掉的正则表达式,则会获得正常的词典排序顺序.但是,Posix [:alpha:]字符类会产生一些怪异的排序顺序,如下所示:
$test_normal
aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cbb
aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cbb
$test_posix
aaa aab aac aba abb …Run Code Online (Sandbox Code Playgroud) 我很难搞清楚perl正则表达式模式中支持非捕获括号的最早版本?
对于Perl5的所有版本,我可以将此功能视为理所当然吗?
我在不同时间阅读了有关Dist :: Zilla的文档和一些博客文章.我从未对自己对它的理解充满信心.
在回答另一个问题时,@ Ether提出了将Crypt-SSLeay转换为使用的可能性Dist::Zilla.
那么,在哪里可以找到一个简明的指南,向我展示如何转换现有的CPAN模块Dist::Zilla?问题是否有意义?
在Makefile.PL对Crypt-SSLeay做了很多工作,(很多似乎没有必要,我想修剪它)来查找特定平台include和lib目录,推断的OpenSSL的版本正在安装它的机器上.如果我使用,我该如何包含该功能Dist::Zilla?
在Perl中有一个LWP模块:
libwww-perl集合是一组Perl模块,它为万维网提供简单而一致的应用程序编程接口(API).该库的主要重点是提供允许您编写WWW客户端的类和函数.该库还包含更常用的模块,甚至包含可帮助您实现简单HTTP服务器的类.
Ruby有类似的模块(gem)吗?
更新
以下是我从特定网站中提取URL的功能示例.
use LWP::UserAgent;
use HTML::TreeBuilder 3;
use HTML::TokeParser;
sub get_gallery_urls {
my $url = shift;
my $ua = LWP::UserAgent->new;
$ua->agent("$0/0.1 " . $ua->agent);
$ua->agent("Mozilla/8.0");
my $req = new HTTP::Request 'GET' => "$url";
$req->header('Accept' => 'text/html');
# send request
$response_u = $ua->request($req);
die "Error: ", $response_u->status_line unless $response_u->is_success;
my $root = HTML::TreeBuilder->new;
$root->parse($response_u->content);
my @gu = $root->find_by_attribute("id", "thumbnails");
my %urls = ();
foreach my $g (@gu) {
my @as = $g->find_by_tag_name('a');
foreach $a (@as) { …Run Code Online (Sandbox Code Playgroud) perl ×9
regex ×2
ruby ×2
alias ×1
cpan ×1
dbix-class ×1
dist-zilla ×1
legacy ×1
list ×1
migration ×1
perl-module ×1
postgresql ×1
privacy ×1
rubygems ×1
sequence ×1
sorting ×1
syntax ×1
unicode ×1
utf-8 ×1