小编Spe*_*mon的帖子

在Test :: More中,是否有可能在末尾测试exit()的子程序?

我有一个模块,我用一些实用函数编写.

其中一个函数只是一个用法语句(由用户@zdim推荐)

use 5.008_008;
use strict;
use warnings;

# Function Name:        'usage'
# Function Inputs:      'none'
# Function Returns:     'none'
# Function Description: 'Prints usage on STDERR, for when invalid options are passed'
sub usage ## no critic qw(RequireArgUnpacking)
{
    require File::Basename;
    my $PROG = File::Basename::basename($0);
    for (@_)
    {
        print {*STDERR} $_;
    }
    print {*STDERR} "Try $PROG --help for more information.\n";
    exit 1;
}
Run Code Online (Sandbox Code Playgroud)

我知道子程序按预期工作,并且它很容易测试,但是...对于覆盖率报告,我想将它包含在我的单元测试中.有没有办法测试它Test::More

perl unit-testing perl-module

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

Perl:测试文件实际上是可写的,而不是检查文件权限

假设我有一个文件/var/tmp/filename

在 Perl 中,我编写了以下代码段:

#!/usr/bin/env perl
use strict;
use warnings;

if (-W /var/tmp/filename)
{
...
}

exit;
Run Code Online (Sandbox Code Playgroud)

-W 和 -w 函数 ( http://perldoc.perl.org/functions/-X.html ) 会检查文件是否可以实际写入,还是仅检查文件权限是否允许写入?

我问的原因是我正在编写一个从服务器获取 cookie 的脚本。

此脚本需要能够将 cookie 文件写入文件系统,但如果 cookie 文件的文件系统路径是只读的,则该文件的权限无关紧要。所以我想测试 cookiefile 是否真的可写,而不是仅仅检查它的权限。

perl file-permissions

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

在Perl中,如何确定已加载的特定模块的模块版本?

前言:我知道如何加载特定版本的模块.那不是我追求的.

我正在编写一个脚本来从我公司的内部服务器检索格式化为JSON的文本/纯文本数据.我正在使用LWP进行数据检索.

我已完成所有脚本本身,但有一个问题.

我在RHEL5上写这个,它使用Perl 5.8.8和LWP 5.805.根据下面的页面,如果我想直接输出响应的内容到文件,我应该使用:content_file => filename

但是,请注意以下内容.

请注意,旧版本的LWP不支持此":content_file"选项,因此您应该考虑添加使用LWP 5.66; 检查LWP版本,如果您认为您的程序可能在具有旧版本的系统上运行.

如果您需要与较旧的LWP版本兼容,请使用此语法,它执行相同的操作:

use HTTP::Request::Common; $response = $ua->request( GET($url), $filespec );

由于这是RHEL 5,我必须使用较旧的LWP格式,但我想制作我的脚本,以便在RHEL 6及更高版本上运行时使用新样式而不是旧样式,后者使用较新版本支持的LWP :content_file.

因此,我需要知道如何检测模块版本,更重要的是,我需要知道最早支持的LWP版本是什么 :content_file

perl module version

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