Извлеките файл из временного файла, затем запустите my $bytes = -s $tempfilename;
, затем переименуйте файл.И вы понимаете, что ->width
и ->height
взяты из тега, а не фактической ширины и высоты изображения, верно?
Вот как я мог бы написать ваш код:
#!/user/bin/env perl
use strict;
use warnings;
use autodie;
use WWW::Mechanize;
use File::Basename;
use File::Temp qw/tempfile/;
use Image::Info qw/image_info dim/;
use Number::Format qw/format_bytes/;
my $url = 'http://www.perl.org';
my $mech = WWW::Mechanize->new;
$mech->get( $url );
for my $img ($mech->find_all_images(url_regex => qr/\.(?:jpg|png)$/)) {
my ($name, undef, $ext) = fileparse($img->url, "jpg", "png");
(undef, my $temp) = tempfile;
$mech->get( $img->url, ':content_file' => $temp );
my ($w, $h) = dim image_info $temp;
my $s = format_bytes -s $temp, precision => 2;
my $dim = "($w x $h, $s)";
rename $temp, "$name$dim.$ext";
}