再会!当您运行此脚本时:
#!/usr/bin/perl
use strict;
use warnings;
use Image::EXIF;
my $exif = new Image::EXIF($ARGV[0] || 'image3.jpg');
显示警告(所有图片都没有警告。):
(null): 未知的 TIFF 字段类型;丢弃(未知)
是否可以抑制此警告?
查看该模块的源代码,它有一个 XS 原生部分,调用的 c 函数如下所示(在文件“exifutil.c”中):
void exifwarn2(const char *msg1, const char *msg2)
{
fprintf(stderr, "%s: %s (%s)\n", progname, msg1, msg2);
}
如您所见,它打印到 STDERR,因此您可以在调用 Image::EXIF 构造函数之前正确处理 STDERR。这个 SO question可能会对您有所帮助。