おまけ

サンプルスクリプトを載せます。

写真を読み込んで、Google mapのURLを出力する。
#!C:/Perl/bin/perl

use strict;
use warnings;
use Image::ExifTool qw/ImageInfo/;
use Geo::Coordinates::Converter;
use Data::Dumper::Concise;

my $info = ImageInfo('IMG_0311.jpg');

my $lat = $info->{GPSLatitude};
my $lnt = $info->{GPSLongitude};

for ($lat,$lnt){
  my @p = /([\d.]+)/g;
  $_ = $p[0] + $p[1] / 60 + $p[2] / 3600;
}

my $geo = new Geo::Coordinates::Converter(
  lat => $lat,
  lng => $lnt,
  datum => '', #wgs84
);

my $pp = $geo->convert(''); #wgs84

warn Dumper($pp);
printf "http://maps.google.co.jp/maps?q=$pp->{lat},$pp->{lng}\n";

exit 0;

JSONサンプルです。Encode.pmは使ってませんが、useしています。
#!C:/Perl/bin/perl

use strict;
use warnings;
use Data::Dumper::Concise;
use JSON qw/encode_json decode_json/;
use utf8;
use Encode;

my $source = {
  aaa => 'aaa',
  bbb => 'あいうえお',
};

my $json = encode_json($source);

warn Dumper($source);
warn Dumper($json);

my $ret = decode_json($json);
warn Dumper($ret);

exit 0;

重複した写真を整理してinからoutへコピーするプログラムです。
#!C:/Perl/bin/perl

use strict;
use warnings;
use Image::ExifTool;
use Digest::MD5 qw/md5_hex/;
use File::Copy qw/copy/;

my $in_dir = 'D:/in';
my $out_dir = 'D:/out';
my $files; ListupFiles($in_dir);


for my $md5 (keys %{$files}){
  my $dist = $out_dir . '/' 
    . $files->{$md5}->{modify} 
    . '_' . sprintf("%04d",int(rand(10000))) 
    . '_' . $files->{$md5}->{file};
  print $files->{$md5}->{path} . "\n";
  copy($files->{$md5}->{path}, $dist);
}
exit 0;


sub ListupFiles{
  my $top_dir = shift;
  opendir(my $dir, $top_dir);
  my @tmp = grep{$_ ne '.' && $_ ne '..'} readdir($dir);
  close($dir);
  for my $l (@tmp){
    my $full = $top_dir . '/' . $l;
    if(-d $full){
      ListupFiles($full);
    }
    else{
      open(my $fh, '<', $full);
      my $md5 = new Digest::MD5;
      $md5->addfile($fh);
      my $modify = new Image::ExifTool->ImageInfo($full)->{ModifyDate};
      if(!$modify){
        close($fh);
        next;
      }
      $modify =~ /^([0-9]{4}):([0-9]{2}):([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})/;
      $files->{$md5->hexdigest} = {
        path => $full,
        file => $l,
        modify => $1 . '-' . $2 . '-' . $3 . '-' . $4 . $5 . $6,
      };
      close($fh);
    }
  }
}



以上です。