[Perl] JSON処理のサンプルコード

概要

たまにPerlのコードを書くとモジュール名を忘れているので、自分用の覚書です。

以下はesbuildのmetafileからファイル名とファイルサイズを一覧するサンプルです。

サンプルコード

#!/usr/bin/perl
use strict;
use JSON qw/decode_json/;
use File::Basename qw/dirname/;
use File::Slurp qw/read_file/;
use Number::Bytes::Human qw/format_bytes/;
use Data::Dumper;

my $file = sprintf("%s/../dist/js/esbuild.json", dirname($0));
-e $file || die "$file not found";

my $data = decode_json(read_file($file));
my $info = $data->{'outputs'}{'app.js'}{'inputs'};

printf(">> %s\n", $_)
  for
    map {
      $_->{'message'}
    } sort {
      $b->{'size'} <=> $a->{'size'}
    } map {
      my $name = $_;
      my $size = $info->{$name}{'bytesInOutput'};
      my $message = sprintf("%5s  %s", format_bytes($size), $name);
      { 'name' => $name, 'size' => $size, 'message' => $message };
    } keys %$info;

免責事項

このブログは個人的なメモを兼ねたものです。

このブログを参考にした結果起こりうる如何なる事態に対しても、当方では責任を負いかねます。

予めご了承ください。

その他の最新記事8件