小编raf*_*afl的帖子

链接共享库时限制符号的可见性

某些平台要求您向链接器提供共享库的外部符号列表.但是,在大多数不需要的unixish系统上:默认情况下,所有非静态符号都可用.

我的理解是,GNU工具链可以选择性地将可见性限制为显式声明的符号.如何使用GNU ld实现这一目标?

linker gnu shared-libraries linker-scripts

45
推荐指数
4
解决办法
2万
查看次数

使用Emacs删除字节顺序标记(BOM)

我有一个包含带字节顺序标记的UTF-8编码文本的文件.这个BOM会妨碍事情,我想删除它.

使用其他工具(如perl或awk)或奇怪的编辑模式(如hexl-mode),每次我想摆脱BOM都有点烦人.

有没有办法告诉Emacs删除现有的BOM,而不是在后续保存时再将其写入磁盘?

emacs byte-order-mark

43
推荐指数
1
解决办法
8448
查看次数

在elisp中删除字符串列表中的重复元素

给出一个列表如

(list "foo" "bar" nil "moo" "bar" "moo" nil "affe")
Run Code Online (Sandbox Code Playgroud)

如何构建一个新的列表,删除重复的字符串,以及nil剥离的,即

(list "foo" "bar" "moo" "affe")
Run Code Online (Sandbox Code Playgroud)

需要保留元素的顺序 - 可能不会删除字符串的第一个出现.

我在这里处理的列表很短,所以不需要像哈希表那样使用任何东西进行唯一性检查,尽管这样做肯定也不会受到影响.但是,使用cl功能不是一个可行的选择.

emacs elisp

19
推荐指数
3
解决办法
4582
查看次数

在嵌入式C应用程序中从Perl调用C函数

好吧,这是一个非常有趣的问题,并且可能没有任何简单的方法可以做到这一点,但想到我会在决定修改Perl是我的基本答案之前抛弃它.

所以我有一个以嵌入式方式调用Perl脚本的C应用程序.这一切都很好,花花公子,我可以传递信息并获取信息非常棒.然而,现在进入我的下一次征服; 我需要允许我的嵌入式脚本能够调用原始C叫它的C应用程序中的一些函数.

这很重要,因为XSUB会要求它是一个外部库; 但我不希望它是一个外部库我希望它是对C函数的直接调用.现在也许这可以通过XSUB完成,我刚刚阅读并理解错误.

Application -(run)-> Perl

Application <-(function_x())- Perl

Application -(returnfunction_x)-> Perl
Run Code Online (Sandbox Code Playgroud)

这不能是外部库的原因是因为我依赖于仅在应用程序中创建/存储的数据.

c perl perl-xs

12
推荐指数
1
解决办法
2317
查看次数

在哪里可以找到将现有CPAN模块转换为使用Dist :: Zilla的简明指南?

我在不同时间阅读了有关Dist :: Zilla的文档和一些博客文章.我从未对自己对它的理解充满信心.

在回答另一个问题时,@ Ether提出了将Crypt-SSLeay转换为使用的可能性Dist::Zilla.

那么,在哪里可以找到一个简明的指南,向我展示如何转换现有的CPAN模块Dist::Zilla?问题是否有意义?

更新:

Makefile.PLCrypt-SSLeay做了很多工作,(很多似乎没有必要,我想修剪它)来查找特定平台includelib目录,推断的OpenSSL的版本正在安装它的机器上.如果我使用,我该如何包含该功能Dist::Zilla

perl cpan dist-zilla

7
推荐指数
2
解决办法
209
查看次数

使用url-retrieve解码gzip-ed响应主体

对于Emacs扩展,我想通过HTTP检索数据.我不是特别喜欢炮击了喜欢的东西的想法wget,curl或者w3m是能够做到这一点,所以我使用的url-retrieve功能.

我正在谈论的其中一个HTTP服务器碰巧忽略了Accept-Encoding标头,并坚持总是发送其数据Content-Encoding: gzip.

因此,以及url-retrieve不会自动解码响应主体的事实,缓冲区url-retrieve将呈现我将包含二进制gzip数据.

我正在寻找一种解码响应体的方法,最好是在数据到达时按块进行块化.有没有办法指导url-retrieve我这样做?

一旦它完全到达,一次解码响应也是可以接受的,但我宁愿避免创建运行gzip的异步子进程所涉及的所有fubar,管理我得到的响应的部分,以及读取已解码的块回来 - 我在这里寻找一些图书馆功能.

emacs elisp http

6
推荐指数
1
解决办法
766
查看次数

Scala函数转换

假设我有一个函数采用一个参数

def fun(x: Int) = x
Run Code Online (Sandbox Code Playgroud)

基于此,我想生成一个具有相同调用约定的新函数,但是在委托给原始函数之前,它将对其参数应用一些转换.为此,我可以

def wrap_fun(f: (Int) => Int) = (x: Int) => f(x * 2)
wrap_fun(fun)(2) // 4
Run Code Online (Sandbox Code Playgroud)

一个人怎么可能做同样的事情,除了任何arity的函数只有参数的一部分来共同应用转换?

def fun1(x: Int, y: Int) = x
def fun2(x: Int, foo: Map[Int,Str], bar: Seq[Seq[Int]]) = x

wrap_fun(fun1)(2, 4) // 4
wrap_fun(fun2)(2, Map(), Seq()) // 4
Run Code Online (Sandbox Code Playgroud)

wrap_fun上述调用的定义如何工作?

closures functional-programming scala

6
推荐指数
2
解决办法
1942
查看次数

我可以让fcntl和Perl警报合作吗?

我在Linux上,nfs,涉及多台机器.

我正在尝试使用fcntl来实现文件锁定.我一直在使用flock,直到我发现它只能在同一台机器上的进程之间工作.

现在当我用F_SETLKW调用fcntl时,perl警报(用于添加超时)不像以前那样工作.这通常没问题,但是ctrl-c也没有用.

我相信正在发生的事情是,fcntl每隔30秒左右只检查一次信号.警报最终会回来.ctrl-c最终被抓住了.

有什么办法可以调整fcntl检查这些信号的频率吗?

perl nfs locking fcntl

5
推荐指数
1
解决办法
449
查看次数

如何判断两个字符串是否大致相同(在perl中)?

我有一个字符串,我想与一个字符串数组进行比较,并返回最匹配的数组元素.

我可以写一个滑动相关器,计算每一步的匹配字符数,并返回最大相关性.但有更好的方法吗?

例如:
control_string = drv_probability_1_max

清单:
burst_period_min/MAX
duty_cycle_min /最大
probablility_0_min /最大
probablility_1_min/MAX

理想情况下它返回"probablility_1_min/max"

perl search similarity correlation

4
推荐指数
1
解决办法
2089
查看次数

几乎*始终启用某些emacs模式或功能*

有一对夫妇的emacs的功能,例如flyspell-mode, highlight-beyond-fill-column或者auto-fill-mode,我觉得非常有用,所以我希望他们能几乎所有的时间.然而,总有一些条件它们没有多大意义.

highlight-beyond-fill-column例如,我倾向于想要几乎所有我自己编辑的东西,但是对于阅读别人写的东西,比如在Gnus或者在阅读内置文档时,它实际上非常烦人.

同样,auto-fill-mode在编写Text时非常方便.但是,在编程时它完全没有用.

出于这些原因,我不能只在全局范围内启用这样的功能.总是手动启用它们也不是很实用,但是必须为我在emacs中使用的每个模式或应用程序编写挂钩,显然无法覆盖所有这些模式或应用程序,并且仍然最终启用这些功能手动.

我认为我正在寻找的是一种全局启用某些功能的方法,但是根据各种条件选择性地关闭它们,例如使用哪种主要或次要模式,缓冲区是只读还是可写,或者取决于包含文本或源代码的缓冲区.我确实意识到至少最后一件事可能不容易让emacs回答,但至少我认为我可以使用经常使用的"编程模式"的硬编码列表.

emacs

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

我该如何控制Perl Moose对象的版本?

我是Moose新手,我想知道是否常见

our $VERSION = "0.001";
$VERSION = eval $VERSION;
Run Code Online (Sandbox Code Playgroud)

也应该在Moose包中使用,或者Moose有一些替代的版本控制方式.无法在Moose文档中找到引用.

versioning perl moose

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

了解 Perl 的赋值或运算符与赋值和逻辑或运算符的组合之间的行为差​​异

今天,当我在 Perl 中发现以下行为时,我感到很惊讶:

sub f { die if %{ $_[0] }; 42 }
my %h;
$h{x} ||= f(\%h); # we die. $_[0] references a hash with an 'x' key during f's run-time
Run Code Online (Sandbox Code Playgroud)

相反,在相同的设置下,以下语句的行为有所不同。

$h{x} = $h{x} || f(\%h); # $h{x} is now 42
Run Code Online (Sandbox Code Playgroud)

分配或与分配和逻辑或的组合之间的潜在差异是否记录在某处?

如果这是由于自动激活造成的,那么模块中是否存在错误或缺少功能autovivification,似乎无法检测到此特定构造中的自动激活?

perl evaluation operators autovivification

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

如何在Perl中更正特定于操作系统的文件路径?

由于一些混乱的遗留代码,

我有

$path = [OS specific base DIR name][hardcoded Linux file path]
Run Code Online (Sandbox Code Playgroud)

所以在Linux上,它就像是

$path = /common/path/to/dir/pathtofile/name.extension
Run Code Online (Sandbox Code Playgroud)

但在Windows上它就变成了这个

$path = C:\path\to\dir\pathtofile/name.extension
Run Code Online (Sandbox Code Playgroud)

一些代码在Windows上失败,因为它需要一段\时间才能获得/.

是否有Perl功能可以帮助我?

就像是

print "$path\n";
$path = <some function> $path;
print "$path\n";

C:\path\to\dir\pathtofile/name.extension
C:\path\to\dir\pathtofile\name.extension
Run Code Online (Sandbox Code Playgroud)

perl filenames portability

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