我正在解析一个文件,它的一部分是记录的东西,格式如下:
CategoryA--
5: UserA
6: UserB
7: UserC
CategoryB--
4: UserA
5: UserB
Run Code Online (Sandbox Code Playgroud)
我想将它移动到一个看起来像这样的哈希:
{ UserA => { CategoryA => 5, CategoryB => 4, },
UserB => { CategoryA => 6, CategoryB => 5, },
UserC => { CategoryA => 7, },
}
Run Code Online (Sandbox Code Playgroud)
我如何对此进行正则表达式?
编辑:它不一定纯粹只是正则表达式 - 只是在perl和循环也会很好.
CPAN中是否有一个很好的库可以过滤掉所有不良内容的文本字段,比如xss?
我正在查看perl代码,我看到了这个:
sub html_filter {
my $text = shift;
for ($text) {
s/&/&/g;
s/</</g;
s/>/>/g;
s/"/"/g;
}
return $text;
}
Run Code Online (Sandbox Code Playgroud)
for循环在这种情况下做了什么,为什么你会这样做?
我想创建一个好的语法,以便更容易链接到内部事物,有点像Wiki,所以也许我认为用户可以使用类似的东西:
Bah bah bah reference: [[a]]
Run Code Online (Sandbox Code Playgroud)
它会将其转换为HTML:
Bah bah bah reference: <a href="..../id=a">title</a>
Run Code Online (Sandbox Code Playgroud)
但我担心感叹和安全问题.选择什么是好的语法(可能是[[]]或其他什么)以及它的安全正则表达式是什么?
我有一个使用冻结数据的对象:
sub frozen_data {
my $self = shift;
$Data::Dumper::Indent = 0;
$Data::Dumper::Terse = 1;
return Data::Dumper->Dump( [ $self->{_DATA}, ] );
}
Run Code Online (Sandbox Code Playgroud)
和相应的解冻:
sub thaw_data {
my ($self) = @_;
$self->{_DATA} = eval $self->{DATA};
}
Run Code Online (Sandbox Code Playgroud)
这似乎运作良好,有任何问题吗?我也试过通过perlcritic来运行它,我得到了这个:
Expression form of "eval" at line 69, column 22. See page 161 of PBP. (Severity: 5)
Run Code Online (Sandbox Code Playgroud)
写这个的更好的方法是什么?
我想做这样的事情:
val a = v match {
case 1 => 1
case 2 if (condition) => logging
case 2 if (other conditions) => 3
case 2 if (more conditions) => 4
case _ => 5
}
Run Code Online (Sandbox Code Playgroud)
我希望这只返回第一个案例2的日志,但是否则会通过其他方式返回以查看返回的内容
编辑:更新
在前一个ajax事件完成之前阻塞的好方法是什么?
我跟着你如何在Stackoverflow中制作一个投票上下按钮?但如果我足够快地点击按钮,它会向服务器发送多个(也许是不一致的)事件.如何制作它以便用户在另一次点击注册之前等待?
编辑:我也不希望它全局阻止 - 只是为了那个按钮/项目.我需要维护哈希吗?