我可以在 Perl 中抑制来自 fetch.pm 的错误消息吗

2023-12-08

当使用 Fetch 从 Teamcity 下载 url 时,我收到 Fetch failed!错误。但文件的下载确实有效。

他们最近更改了我们的 Teamcity 服务器的权限,因此我在获取要下载的文件的 URL 时必须使用用户名和密码。我只是想知道这是否会导致网关的 fetch 验证出现问题,但我可以下载该文件。有没有办法抑制此错误或将其降级为警告?

Perl Code:
my $ff = File::Fetch->new(uri => "$uri"); 
my $where = $ff->fetch   ( to => "$DOWNLOAD_LOCATION" );
print Dumper($ff);

Output:    
Fetch failed! HTTP response: 502 Bad Gateway [502 notresolvable] at         
<path>\myfile.pl line 249.

Dumper Output:
$VAR1 = bless( {'vol' => '',
                'file_default' => 'file_default',
                '_error_msg' => 'Fetch failed! HTTP response: 502 Bad Gateway [502 notresolvable]',
                'file' => 'myfilename.zip',
                'scheme' => 'http',
                'path' => '/repository/download/buildlabel/1042086:id/',
                '_error_msg_long' => 'Fetch failed! HTTP response: 502 Bad    Gateway [502 notresolvable] at C:/Perl/lib/File/Fetch.pm line 598.

问题似乎是打印到的警告(消息)STDERR。显然你没有得到die否则程序将退出。您可以通过设置来控制打印消息的过程$SIG{__WARN__}钩子,最好位于一个块中。

my $where;

FETCH: {

    local $SIG{__WARN__} = sub { 
        print "WARN: @_";        # or whatever appropriate
    };

    $where = $ff->fetch   ( to => "$DOWNLOAD_LOCATION" );    
};

or

my $where = do { 
    local $SIG{__WARN__} = sub { print "WARN: @_" };
    $ff->fetch;
};

信号的处理 – 打印到STDERR– 在块外恢复,这就是local提供。看这在 perlsub 中,特别是“之后的文本”Synopsis“。您也可以手动执行此操作,方法是说$SIG{__WARN__} = 'DEFAULT';一旦你完成了。

See warn

如果有则不打印任何消息$SIG{__WARN__}安装了处理程序。处理程序有责任按照其认为合适的方式处理消息(例如,将其转换为骰子)。

另请参阅%SIG entry 在佩尔瓦尔

例程由$SIG{__WARN__}当即将打印警告消息时调用。警告消息作为第一个参数传递。存在一个__WARN__hook 会导致对 STDERR 的普通警告打印被抑制。


虽然决定什么称为“错误”和什么称为“警告”可能有点武断,但很明显,您的程序仅向STDERR并继续。那么以上应该就足够了。

如果您被die然后你可以将代码包装在eval.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 Perl 中抑制来自 fetch.pm 的错误消息吗 的相关文章

  • For 循环和词法作用域变量

    版本 1 use warnings use strict my count 4 for count 1 8 print Count count n last if count 6 if not defined count print Cou
  • Perl Regex:如何从 CSV 行中删除引号内的引号

    我从 CSV 文件中得到了一行 作为场围场和 作为字段分隔符作为字符串 有时有 在打破场围的数据中 我正在寻找一个正则表达式来删除这些 我的字符串看起来像这样 my csv qq 123456 024003 Stuff 28 stuff w
  • STDOUT->autoflush(1) 在 Perl 中做什么?

    我找到了有关 Perl 中自动刷新的各种信息 但找不到任何提及格式完全相同的行 STDOUT gt autoflush 1 这包含在我正在分析的程序中 我想更好地了解它的作用 程序开头还有这样一段话 use IO Handle 我认为这可能
  • 是否可以使用perl读取pdf文件中的文本?

    我想在 perl 中解析 pdf 文件中的文本 而不将 pdf 转换为任何其他格式 是否可以 是的你可以 看看CAM PDF http search cpan org dist CAM PDF 包裹 您可以使用此模块来提取文本 my pdf
  • Perl OO 方法调用第一个参数值 (->)

    就 Perl OO 而言 到底做了什么 gt do 例如我拨打 main 电话 result a b gt mymethod 在我定义的包中mymethod 我使用以下内容 my class 总的来说 我显然没有向mymethod 那么哪里
  • 如何在 Perl 中使用数组引用中的索引作为方法引用?

    如同这个关于迭代子例程引用的问题 https stackoverflow com questions 452529 how do i iterate over dereference an array of subroutine refs
  • 如何从 Perl 调用 gnuplot 脚本

    我有一个 gnu gp 文件 grphist conf set terminal canvas Terminal type set to canvas Options are solid butt size 600 400 fsize 10
  • 当一个模块安装了两个版本时 Perl 会做什么?

    我在正在使用的远程机器上没有 root 访问权限 因此我使用 cpanm 和 local lib 的组合 如下所述here https stackoverflow com a 2980715 1156644将 CPAN 模块安装到我的本地目
  • 哪一个代表null? undef 或空字符串

    我想插入null在表的一列中 哪一个代表null undef或空字符串 应该使用哪一种 为什么 我知道关于defined我可以检查一下 但我更多的是从数据库的角度来看 代表哪一个null更合适吗 Update 我在用DBI module D
  • 如何拆分一行并重新排列其元素?

    我在一行中有一些数据 如下所示 abc edf xyz rfg yeg udh 我想呈现如下数据 abc xyz yeg edf rfg udh 以便打印备用字段并用换行符分隔 有没有这样的衬里 下列awk脚本可以做到这一点 gt echo
  • 如何使用 Perl 从 NCBI 获取 FASTA 核苷酸格式的基因特征?

    我可以手动下载 FASTA 文件 如下所示 gt lcl CR543861 1 gene 1 ATGCTTTGGACA gt lcl CR543861 1 gene 2 GTGCGACTAAAA 通过单击 发送到 并选择 基因特征 FAST
  • 多个与单个 Catalyst 应用程序

    我有多个作为 FCGI 运行的 Catalyst 应用程序 将它们整合为具有多个控制器的单个控制器是否有好处 Thanks Simone 内存 大概吧 我认为每台服务器至少要保留 15MB 左右 因此如果您在 3 台服务器上运行 3 个应用
  • 是否有用于 AES 的纯 Perl 模块?

    是否有用于 AES 的纯 Perl 模块 地穴 Rijndael PP http search cpan org dist Crypt Rijndael PP Rijndael 是底层算法AES https secure wikimedia
  • 从日志尾部提取匹配行后退出

    我使用范围运算符来提取日志文件的一部分 例如 tail F logfile perl ne print if b d 现在 一旦提取的部分匹配 我就尝试退出该过程 我尝试过 tail F logfile perl ne print if b
  • Perl 单元测试只针对模块,而不针对程序吗?

    我在网上找到的文档和我拥有的书 Perl测试 或者说或者建议 Perl 的单元测试通常是在创建模块时完成的 这是真的 有没有办法使用单元测试实际程序Test More和表兄弟姐妹 当然 您可以使用测试脚本测试 更多 http search
  • 如何构建 Perl Web 服务基础设施

    我有许多用于管理多服务器基础设施的脚本 其中一些脚本需要 root 访问权限 一些需要访问数据库 并且大多数脚本都是基于 perl 的 我想将所有这些脚本转换为非常简单的 Web 服务 可以从不同的应用程序执行 这些 Web 服务将接受常规
  • 如何在调试器模式下运行 perl 测试?

    我尝试在调试器下运行测试 perl d which prove t file t 但这没有任何效果 因为每个测试都是作为单独的作业运行的 我已经发现 exec选项 但是当我提供它时 我失去了任何选项 proverc文件和命令行 prove
  • Parse::RecDescent 语法未按预期工作

    我所能做的就是 STRING PARAMS VARIABLE 和 FUNCNAME FUNCTION 似乎有问题 但我就是看不到它 use strict use Parse RecDescent RD ERRORS 1 Make sure
  • 正则表达式从字符串中提取 IP 和端口

    我正在使用 Perl 尝试从字符串中提取 IP 地址和端口 我尝试使用的正则表达式是 s sip 字符串是 sip 255 255 255 255 8080 transport TCP sip 255 255 255 255 8080 显然
  • 如何在 perl 中合并两个数组,交替每个数组中的值

    假设我有 2 个如下所示的数组 a1 Vinay Raj harry b1 dude rock 合并后我想要这样的结果 Vinay dude Vinay rock Raj dude Raj rock harry dude harry roc

随机推荐

  • RxJS 订阅未触发

    目前正在学习 RxJS 我有一个整数selectedCourseIndex在我想要订阅一个单独的组件的服务中 课程部分 service ts private selectedCourseIndex number 1 this number
  • C 中的变量定义忽略[重复]

    这个问题在这里已经有答案了 Code int main int a 1 switch a int b 20 case 1 printf b is d n b break default printf b is d n b break ret
  • 嵌套数组。第三层正在消失

    我有那个数组 a array 7 gt array id gt 7 parent gt 6 6 gt array id gt 6 parent gt 5 5 gt array id gt 5 parent gt 4 4 gt array i
  • mongodb可以作为嵌入式数据库使用吗?

    我正在开发 RSS 阅读器应用程序 我需要找到一个后端数据库 我希望嵌入数据库 因为我不希望用户安装数据库服务器 我知道 SQLite 是一个不错的选择 但我想知道是否还有其他 nosql 选择 我还没有 50 个代表点来评论和建立已接受的
  • 关闭弹出窗口后自动刷新父窗口

    我的 主 jsp 中有 2 个弹出屏幕 在第一个弹出窗口中 用户将更新所需的信息 更新 提交信息后 将显示一个新的弹出窗口 显示修改 查看 我想当用户单击视图页面中的关闭 X 时刷新主页 我尝试在视图页面中使用如下一些脚本 但它不起作用
  • 改变 Java 中静态方法的行为 - 字节码操作

    我正在尝试操纵静态方法 为了这 字节好友或者可以使用任何其他框架 有一个图书馆叫做Pi4J用于控制Raspberry Pi的GPIO 这个库有一个方法叫做 GpioController gpio GpioFactory getInstanc
  • 为数据网格的标题添加不同的上下文菜单

    我想为 WPF 上的数据网格标题添加不同的上下文菜单 我怎样才能做到这一点 这些资源将帮助您 WPF 中的上下文菜单 WPF 上下文菜单 如何创建自定义 WPF 上下文菜单 WPF 使用 XAML 这是另一种标记语言 您通常看到的一个常见现
  • 使用 javascript 从 json 对象动态添加数据行?

    我的网站项目中有一个 json 文件 如下所示 id 1 name ramesh phone 12345 salary 50000 id 2 name suresh phone 123456 salary 60000 这是示例数据 它有 4
  • 用户输入而不暂停代码(C++ 控制台应用程序)

    如何在不导致代码停止执行的情况下进行输入 在过去的 20 分钟里我一直在寻找答案 但没有结果 cin gt gt string 暂停代码 AFAIK 我需要使用多线程 还是有更好的方法 我什至不知道多线程是否有效 我最近开始学习c 至少可以
  • Meteor - 使用公共 IP 访问应用程序

    我可以使用 localhost 3000 访问该应用程序 但我尝试在本地移动设备上进行测试 而无需部署它 但我无法访问该网站 我允许传入请求 sudo ufw status verbose Status active Logging on
  • 给定两个点和两个向量,找到交点[重复]

    这个问题在这里已经有答案了 可能的重复 如何检测两条线段相交的位置 给定两点a and b加两个向量v and u我想找到第三点c 它是交点 如下所示 vector2 intersection vector2 a vector2 v vec
  • OneNote API /pages 端点无法正常工作[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 Summary 为了通过 REST API 获取有关我最近修改的 OneNote 页面的最新信息 我进行了一个简短的实验 在其中创建了一个新的 Outlook ID 使用 W
  • 多部分/表单数据请求的 Indy MIME 解码返回尾随 CR/LF

    Indy 10 6 修订版 5128 似乎包含一项更改 该更改破坏了以下 HTTP 表单上传的代码 接收到的数据末尾包含两个附加字节 即 CR LF 对 通读 5127 和 5128 之间更改的代码行并没有让我找到根本原因 当我找到时间时
  • 使用 extrafont 包检索 Windows 字体后,字体表仍为空

    为了将字体名称为 Calibri 的 ggplots 保存到 pdf 文件 我尝试使用extrafont包以便能够在 ggplot2 中使用此字体类型 这些是我采取的步骤 font import 获取所有字体后 在此过程中似乎没有任何问题
  • 从 ActionContext 获取/设置 ServletRequest 属性

    我需要设置一个ServletRequestStruts2 拦截器 不是操作类 中的属性 是否ActionContext暴露一个Map
  • 无法返回 HTML 元素的 css 属性[重复]

    这个问题在这里已经有答案了 HTML中有一个元素 div div 它是通过 CSS 实现的属性 block background red 如果我想在 JavaScript 中将 CSS 的属性分配给某个变量 如下所示 var value d
  • 我如何知道表单提交是否成功?

    我有一个表单 主要用于上传文件 我提交了两次表单 第一次没有多部分 第二次有多部分
  • 如何将多个 csv 文件(不同架构)加载到 bigquery 中

    I have 6 500 csv files with 250 different schema s i e These files are from the F D I C USA bank regulator dataset They
  • 张量流中的非全连接层

    我想创建一个网络 其中输入层节点仅连接到下一层中的某些节点 这是一个小例子 到目前为止 我的解决方案是设置边缘的权重i1 and h1为零 并且在每个优化步骤之后 我将权重乘以一个矩阵 我称之为矩阵掩码矩阵 其中每个条目都是 1 除了之间的
  • 我可以在 Perl 中抑制来自 fetch.pm 的错误消息吗

    当使用 Fetch 从 Teamcity 下载 url 时 我收到 Fetch failed 错误 但文件的下载确实有效 他们最近更改了我们的 Teamcity 服务器的权限 因此我在获取要下载的文件的 URL 时必须使用用户名和密码 我只