The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use lib qw{../lib};
use FileHandle;
use Getopt::Long;
use IO::SWF;

our %opt = (
    'f' => undef, # file name
    'h' => undef, # hexdump
);
GetOptions(
    'f=s' => \$opt{f},
    'h'     => \$opt{h},
);

if (!$opt{f} || !-e $opt{f}) {
    print "Usage: perl swfdump.pl -f=<swf_file> [-h]\n";
    print "ex) perl swfdump.pl -f=test.swf -h\n";
    exit();
}

my $fh;
$fh = FileHandle->new("<" . $opt{f});
local $/;
my $swf_data = $fh->getline;
$fh->close;

my $swf = IO::SWF->new();
$swf->parse($swf_data);

my %opts = ();
$opts{'hexdump'} = 1 if $opt{h};

$swf->dump(\%opts);

exit;